{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "version": {
      "description": "Current version of YML notation.",
      "type": [
        "number",
        "string"
      ],
      "pattern": "^(\\d+)\\.(\\d+)\\.(\\d+)$"
    },
    "profile": {
      "type": "string"
    },
    "profile_version": {
      "description": "Current version of a dedicated profile",
      "type": [
        "number",
        "string"
      ],
      "pattern": "^[A-Za-z0-9\\.\\-_]+$"
    },
    "sowa_version": {
      "description": "The parameter value indicates the minimum distribution version for correct interaction with the application part.",
      "type": [
        "number",
        "string"
      ],
      "pattern": "^[A-Za-z0-9\\.\\-]+$"
    },
    "is_outgoing": {
      "description": "The parameter value indicates that requests are going TO untrusted network (default - false).",
      "type": "boolean"
    },
    "system": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "wrk_count": {
          "description": "Default 1 for container and openshift, auto - for others",
          "type": [
            "number",
            "string"
          ],
          "pattern": "^(auto)|(\\d)+$"
        },
        "conn_count": {
          "description": "Specifies needed connection count(not limit). Default 4096",
          "type": "integer"
        },
        "worker_shutdown_timeout": {
          "description": "Specifies a time limit for NGINX’s attempts to gracefully let worker processes terminate. Once the timeout has expired, NGINX will actively try to close the connections necessary for the processes to terminate.",
          "type": [
            "number",
            "string"
          ],
          "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
        },
        "optional": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "http2_recv_buffer_size": {
              "description": "Specifies the size of the per worker input buffer",
              "type": [
                "number",
                "string"
              ],
              "pattern": "^([0-9]+[kKmMG]{1})$"
            },
            "wrk_user": {
              "type": "string"
            },
            "default_type": {
              "type": "string"
            },
            "log_level": {
              "type": "string",
              "enum": [
                "debug",
                "info",
                "notice",
                "warn",
                "error",
                "crit",
                "alert",
                "off"
              ]
            },
            "log_type": {
              "description": "Specifies logging mode for sowa-nginx. Default mode - file.",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "kafka": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "group": {
                        "description": "Specifies which group of logs will use current settings.",
                        "type": "array",
                        "items": {
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "system",
                            "error",
                            "access"
                          ]
                        }
                      },
                      "id": {
                        "description": "Specifies client.id.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "broker": {
                        "description": "Initial list of brokers as a host:port separated by comma.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "topic": {
                        "description": "Specifies topic name.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\S*$"
                      },
                      "protocol": {
                        "description": "Specifies connection protocol. Plaintext by default.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "plaintext",
                          "ssl"
                        ]
                      },
                      "certificate": {
                        "description": "Specifies ssl.certificate.location",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "ca": {
                        "description": "Specifies ssl.ca.location.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "key": {
                        "description": "Specifies ssl.key.location.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "ciphers": {
                        "description": "Specifies ssl.cipher.suites. Same as default ssl ciphers.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "compression_codec": {
                        "description": "Compression codec to use for compressing message sets.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "none",
                          "gzip",
                          "snappy",
                          "lz4",
                          "zstd"
                        ]
                      },
                      "compression_level": {
                        "description": "Compression level parameter for algorithm selected by configuration property compression.codec. Higher values will result in better compression at the cost of more CPU usage.",
                        "type": "integer",
                        "minimum": -1,
                        "maximum": 12
                      },
                      "log_level": {
                        "description": "Logging level (syslog(3) levels).",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "debug": {
                        "description": "A comma-separated list of debug contexts to enable.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "max_messages": {
                        "description": "Maximum number of messages batched in one MessageSet.",
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 1000000
                      },
                      "pattern_file": {
                        "description": "Template file with custom log structure.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "escape": {
                        "description": "Defines if you need to escape variables used in pattern file.",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "broker",
                      "topic"
                    ],
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "protocol"
                          ],
                          "properties": {
                            "protocol": {
                              "const": "ssl"
                            }
                          }
                        },
                        "then": {
                          "required": [
                            "certificate"
                          ]
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "protocol"
                          ],
                          "properties": {
                            "protocol": {
                              "const": "ssl"
                            }
                          }
                        },
                        "then": {
                          "required": [
                            "ca"
                          ]
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "protocol"
                          ],
                          "properties": {
                            "protocol": {
                              "const": "ssl"
                            }
                          }
                        },
                        "then": {
                          "required": [
                            "key"
                          ]
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "protocol"
                          ],
                          "properties": {
                            "protocol": {
                              "const": "ssl"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ciphers"
                            ]
                          }
                        }
                      }
                    ]
                  }
                },
                "syslog": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "group": {
                        "description": "Specifies which group of logs will use current settings.",
                        "type": "array",
                        "items": {
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "system",
                            "error",
                            "access"
                          ]
                        }
                      },
                      "log_host": {
                        "description": "Specifies host for remote logging to syslog.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "log_port": {
                        "description": "Specifies port for remote logging to syslog. Default port - 514.",
                        "type": [
                          "number",
                          "string"
                        ]
                      }
                    }
                  }
                },
                "file": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "group": {
                        "description": "Specifies which group of logs will use current settings.",
                        "type": "array",
                        "items": {
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "system",
                            "error",
                            "access"
                          ]
                        }
                      }
                    }
                  }
                },
                "security": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "enabled": {
                      "description": "Enables logging security security events (XSD, JSON, WSDL and other validators). False by default.",
                      "type": "boolean"
                    },
                    "threads_count": {
                      "description": "Specifies count of threads for thread pool, used for sending security events to syslog. Default is 16",
                      "type": "integer"
                    },
                    "hostname": {
                      "description": "Specifies hostname to dispaly in syslog event. Default is current hostname.",
                      "type": [
                        "number",
                        "string"
                      ]
                    },
                    "appname": {
                      "description": "Specifies application name to dispaly in syslog event. Default is \"sowa-security\".",
                      "type": [
                        "number",
                        "string"
                      ]
                    },
                    "facility": {
                      "description": "Specifies facility for syslog event. Default is USER.",
                      "type": [
                        "number",
                        "string"
                      ],
                      "enum": [
                        "KERN",
                        "USER",
                        "MAIL",
                        "DAEMON",
                        "AUTH",
                        "SYSLOG",
                        "LPR",
                        "NEWS",
                        "UUCP",
                        "CRON",
                        "AUTHPRIV",
                        "FTP",
                        "NTP",
                        "AUDIT",
                        "ALERT",
                        "CLOCK",
                        "LOCAL0",
                        "LOCAL1",
                        "LOCAL2",
                        "LOCAL3",
                        "LOCAL4",
                        "LOCAL5",
                        "LOCAL6",
                        "LOCAL7"
                      ]
                    },
                    "severity": {
                      "description": "Specifies severity for syslog event. Default is INFORMATIONAL.",
                      "type": [
                        "number",
                        "string"
                      ],
                      "enum": [
                        "EMERGENCY",
                        "ALERT",
                        "CRITICAL",
                        "ERROR",
                        "WARNING",
                        "NOTICE",
                        "INFORMATIONAL",
                        "DEBUG"
                      ]
                    },
                    "target_host": {
                      "description": "Specifies host to send syslog event. Default is \"127.0.0.1\"",
                      "type": [
                        "number",
                        "string"
                      ]
                    },
                    "target_port": {
                      "description": "Specifies port to send syslog event. Default is 514.",
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 65535
                    },
                    "protocol": {
                      "description": "Specifies used protocol to send syslog event. Default is UDP.",
                      "type": [
                        "number",
                        "string"
                      ],
                      "enum": [
                        "UDP",
                        "TCP"
                      ]
                    },
                    "msg_format": {
                      "description": "Specifies message format to send syslog event. Default is RFC_3164",
                      "type": [
                        "number",
                        "string"
                      ],
                      "enum": [
                        "RFC_3164",
                        "RFC_5424",
                        "RFC_5425"
                      ]
                    }
                  }
                }
              }
            },
            "resolver": {
              "description": "dns resolver",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "host": {
                  "description": "one or more IP or domain addresses of DNS servers (when specifying several addresses, the space character must be used as a delimiter)",
                  "type": [
                    "number",
                    "string"
                  ]
                },
                "valid": {
                  "description": "parameter to the resolver directive, you can tell SOWA to ignore the TTL and re‑resolve names at a specified frequency instead.",
                  "type": [
                    "number",
                    "string"
                  ],
                  "pattern": "^([0-9]+[smhdwMy]{1})$"
                },
                "resolver_timeout": {
                  "description": "resolver_timeout sec",
                  "type": [
                    "number",
                    "string"
                  ],
                  "pattern": "^([0-9]+[smhdwMy]{1})$"
                }
              },
              "required": [
                "host",
                "valid"
              ]
            },
            "pcre_jit": {
              "description": "Enable jit for pcre. Default on.",
              "type": "boolean"
            },
            "log_format": {
              "description": "Specifies log format for access logging.",
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "name": {
                    "description": "Specifies format name.",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "format": {
                    "description": "Specifies log format in nginx terms.",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "escape": {
                    "type": [
                      "number",
                      "string"
                    ],
                    "enum": [
                      "default",
                      "json",
                      "none"
                    ]
                  }
                }
              }
            },
            "map_hash_bucket_size": {
              "description": "Specifies map_hash_bucket_size",
              "type": [
                "number",
                "string"
              ],
              "pattern": "^([0-9]+)$"
            },
            "map_hash_max_size": {
              "description": "Specifies map_hash_max_size",
              "type": [
                "number",
                "string"
              ],
              "pattern": "^([0-9]+)$"
            },
            "server_names_hash_max_size": {
              "description": "Specifies server_names_hash_max_size",
              "type": [
                "number",
                "string"
              ],
              "pattern": "^([0-9]+)$"
            },
            "server_names_hash_bucket_size": {
              "description": "Specifies server_names_hash_bucket_size",
              "type": [
                "number",
                "string"
              ],
              "pattern": "^([0-9]+)$"
            },
            "variables_hash_max_size": {
              "description": "Specifies variables_hash_max_size",
              "type": [
                "number",
                "string"
              ],
              "pattern": "^([0-9]+)$"
            },
            "variables_hash_bucket_size": {
              "description": "Specifies variables_hash_bucket_size",
              "type": [
                "number",
                "string"
              ],
              "pattern": "^([0-9]+)$"
            },
            "types_hash_bucket_size": {
              "description": "Specifies types_hash_bucket_size",
              "type": [
                "number",
                "string"
              ],
              "pattern": "^([0-9]+)$"
            },
            "types_hash_max_size": {
              "description": "Specifies types_hash_max_size",
              "type": [
                "number",
                "string"
              ],
              "pattern": "^([0-9]+)$"
            },
            "jvm_options": {
              "description": "Additional JVM options for specified profile. For example - '-XX:+HeapDumpOnOutOfMemoryError'",
              "type": "array",
              "items": {
                "type": [
                  "number",
                  "string"
                ]
              }
            },
            "jvm": {
              "description": "JVM options. The exact meaning and semantics of these values preserved, except the GCType(which is enum of GCollectors)",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "Xmx": {
                  "type": "string",
                  "pattern": "^([0-9]+[kKmMG]{1})$"
                },
                "Xms": {
                  "type": "string",
                  "pattern": "^([0-9]+[kKmMG]{1})$"
                },
                "MaxGCPauseMillis": {
                  "type": "integer"
                },
                "ParallelGCThreads": {
                  "type": "integer"
                },
                "ConcGCThreads": {
                  "type": "integer"
                },
                "InitiatingHeapOccupancyPercent": {
                  "type": "integer"
                },
                "GCType": {
                  "description": "Garbage collector to use. Default is UseG1GC",
                  "type": "string",
                  "enum": [
                    "UseG1GC",
                    "UseSerialGC",
                    "UseParallelGC",
                    "UseParNewGC"
                  ]
                },
                "UseStringDeduplication": {
                  "type": "boolean"
                },
                "UseCompressedStrings": {
                  "type": "boolean"
                },
                "OptimizeStringConcat": {
                  "type": "boolean"
                },
                "UseLWPSynchronization": {
                  "type": "boolean"
                },
                "AggressiveOpts": {
                  "type": "boolean"
                },
                "UseAES": {
                  "type": "boolean"
                },
                "UseAESIntrinsics": {
                  "type": "boolean"
                }
              }
            },
            "ip_blacklist": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "enabled": {
                  "description": "Enabling dynamic ip blacklist",
                  "type": "boolean"
                },
                "optional": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "size": {
                      "description": "Specify IP blacklist size, size is how many IP addresses could be stored in the blacklist. The default value is \"1024\".",
                      "type": "integer"
                    },
                    "timeout": {
                      "description": "Specify IP blacklist entries timeout in seconds. Entries in the 'timeout' period is blocked. The default value is \"60\".",
                      "type": "integer"
                    },
                    "log": {
                      "description": "Enable error log or not. The default value is \"off\".",
                      "type": "string",
                      "enum": [
                        "on",
                        "off"
                      ]
                    },
                    "mode": {
                      "description": "Specifies the blacklist mode. When \"local\" specified, blacklist will be stored inside nginx. Otherwise in the external system specified by \"syscmd\". The default value is \"local\".",
                      "type": "string",
                      "enum": [
                        "sys",
                        "local"
                      ]
                    },
                    "syscmd": {
                      "description": "When \"sys\" mode specified, you must specify external script, which will store ip address in external system (for e.g. Iptables)",
                      "type": "string"
                    }
                  }
                }
              }
            },
            "session_max_size": {
              "type": "integer"
            },
            "session_cache": {
              "description": "specifies cache size for ssl session. The default value evaluates automatically.",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "off",
                    "none",
                    "builtin",
                    "shared"
                  ]
                },
                "name": {
                  "type": "string"
                },
                "size": {
                  "type": [
                    "number",
                    "string"
                  ],
                  "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                }
              },
              "required": [
                "type"
              ]
            },
            "service_status": {
              "description": "This directive enables profile_status service. Default value is \"on\".",
              "type": "string",
              "enum": [
                "on",
                "off"
              ]
            },
            "underscores_in_headers": {
              "description": "If value is \"True\" then allow use headers with underscores. Otherwise this headers will be handled by \"ignore_invalid_headers\" directive. The default value is \"false\"",
              "type": "boolean"
            },
            "ignore_invalid_headers": {
              "description": "Controls whether header fields with invalid names should be ignored. Default is \"True\".",
              "type": "boolean"
            },
            "autostart": {
              "description": "If \"True\" profile will try to start on boot and in runtime automatically if not stopped properly. The default value is \"True\".",
              "type": "boolean"
            },
            "strict_hostname_check": {
              "description": "If enabled, hostnames not from whitelist will be blocked.",
              "type": "boolean"
            },
            "hostname_error_code": {
              "description": "Error code to return if service hostanme check is failed.",
              "type": "integer"
            },
            "extended_status_zone": {
              "description": "Define shared memory zone using for extended stats gathering(chains, security, SimpleRateLimiter)",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "enabled": {
                  "type": [
                    "number",
                    "string"
                  ],
                  "enum": [
                    "on",
                    "off"
                  ]
                },
                "space": {
                  "description": "Defines the size of object storage. Default 10m",
                  "type": [
                    "number",
                    "string"
                  ],
                  "pattern": "^([0-9]+[kKmM]{1})$"
                },
                "entries": {
                  "description": "Defines the count of simultaneously stored objects. Default 32000",
                  "type": "integer"
                }
              },
              "required": [
                "enabled"
              ]
            },
            "shared_task_executors": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "name": {
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "executor_type": {
                    "type": [
                      "number",
                      "string"
                    ],
                    "enum": [
                      "FIXED",
                      "FORKJOIN",
                      "CACHED",
                      "SCHEDULED",
                      "SINGLE",
                      "SINGLE_SCHEDULED"
                    ]
                  },
                  "params": {
                    "type": "object",
                    "additionalProperties": true,
                    "properties": {
                      "pool_size": {
                        "type": "integer"
                      },
                      "parallelism": {
                        "type": "integer"
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "_type"
                          ],
                          "properties": {
                            "_type": {
                              "const": "SCHEDULED"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "pool_size"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "_type"
                          ],
                          "properties": {
                            "_type": {
                              "const": "FIXED"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "pool_size"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "_type"
                          ],
                          "properties": {
                            "_type": {
                              "const": "FORKJOIN"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "parallelism"
                            ]
                          }
                        }
                      }
                    ]
                  },
                  "shutdown_strategy": {
                    "type": [
                      "number",
                      "string"
                    ],
                    "enum": [
                      "IMMEDIATELY",
                      "GRACEFULLY"
                    ]
                  },
                  "shutdown_timeout": {
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  }
                },
                "allOf": [
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "shutdown_strategy"
                      ],
                      "properties": {
                        "shutdown_strategy": {
                          "const": "GRACEFULLY"
                        }
                      }
                    },
                    "then": {
                      "required": [
                        "shutdown_timeout"
                      ]
                    }
                  }
                ]
              }
            },
            "shared_ldap_connections": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "name": {
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "connection": {}
                }
              }
            },
            "thread_pools": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "description": "Defines thread pool unique id.",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "threads_num": {
                    "description": "Defines the number of threads in the pool.",
                    "type": "integer"
                  },
                  "max_queue": {
                    "description": "Limits the number of tasks allowed to be waiting in the queue. By default, up to 65536 tasks can wait in the queue.",
                    "type": "integer"
                  }
                },
                "required": [
                  "id",
                  "threads_num"
                ]
              }
            },
            "async_io": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "directio_threshold": {
                  "description": "Enables the use of the O_DIRECT flag (FreeBSD, Linux), the F_NOCACHE flag (macOS), or the directio() function (Solaris), when reading files that are larger than or equal to the specified size.",
                  "type": [
                    "number",
                    "string"
                  ],
                  "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                },
                "thread_pool_id": {
                  "description": "Defines thread pool to use by id. If the thread_pool_id is omitted, the pool with the name default is used.",
                  "type": [
                    "number",
                    "string"
                  ]
                },
                "write": {
                  "description": "Specifies whether async_io is used for writing files.",
                  "type": "boolean"
                }
              },
              "required": [
                "directio_threshold"
              ]
            },
            "maps": {
              "type": "array",
              "items": {
                "description": "Creates a new variable 'dst_var' whose value depends on values of one or more of the source variables specified in the 'src_var'.",
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "src_var": {
                    "description": "Specifies a string with one or more of source variables, e.g. \"$var1:$var2\"",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "dst_var": {
                    "description": "Specifies a variable to store result value.",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "mapping": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "src_val": {
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "dst_val": {
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "required": [
                        "src_val",
                        "dst_val"
                      ]
                    }
                  },
                  "default": {
                    "description": "Specifies a default value of the 'res_var'. If not specified then it is empty string.",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "volatile": {
                    "description": "Indicates that the variable is not cacheable.",
                    "type": "boolean"
                  },
                  "hostnames": {
                    "description": "Indicates that source values can be hostnames with a prefix or suffix mask.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "src_var",
                  "dst_var",
                  "mapping"
                ]
              }
            },
            "serve_static_file": {
              "type": "array",
              "items": {
                "description": "relative path from custom resources directory",
                "type": [
                  "number",
                  "string"
                ]
              }
            },
            "proxy_temp_tree": {
              "description": "Specifies proxy tmp directory structure. Not actual when use http_version - 2.0",
              "type": [
                "number",
                "string"
              ],
              "pattern": "^(\\d*( \\d*){0,1}( \\d*){0,1})$"
            },
            "body_temp_tree": {
              "description": "Specifies body tmp directory structure",
              "type": [
                "number",
                "string"
              ],
              "pattern": "^(\\d*( \\d*){0,1}( \\d*){0,1})$"
            },
            "storages": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "name": {
                    "description": "Defines the name of storage.",
                    "type": "string"
                  },
                  "space": {
                    "description": "Defines the size of object storage. Default 10m",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})$"
                  },
                  "entries": {
                    "description": "Defines the count of simultaneously stored objects. Default 8096",
                    "type": "integer"
                  },
                  "remove_time": {
                    "description": "Defines the time of storing objects. Default dont remove at all",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[mMsS]{1})$"
                  }
                },
                "required": [
                  "name"
                ]
              }
            },
            "init_handlers": {
              "description": "Specifies a list of init handlers.",
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "description": "Specifies id for init handler",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "name": {
                    "description": "Specifies a handler",
                    "type": [
                      "number",
                      "string"
                    ],
                    "enum": [
                      "HealthCheck",
                      "LdapSearch"
                    ]
                  },
                  "instances": {
                    "description": "Specifies count of handler instances. Single - one handler per profile. Auto - count of nginx workers. Default - single",
                    "type": [
                      "number",
                      "string"
                    ],
                    "enum": [
                      "single",
                      "auto"
                    ]
                  },
                  "params": {
                    "description": "Specifies extra parameters for the actions.",
                    "type": "object",
                    "additionalProperties": true
                  }
                },
                "required": [
                  "id",
                  "name",
                  "params"
                ]
              }
            },
            "transformations_debug": {
              "description": "Enables transformation debug logs. False by default.",
              "type": "boolean"
            },
            "get_load": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "enabled": {
                  "description": "Enables or disables putting server load statistics to variables ($stat_cpu_usage, $stat_memory_usage).",
                  "type": "boolean"
                },
                "interval": {
                  "description": "Stats loading interval in seconds.",
                  "type": "integer"
                }
              }
            },
            "vault": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "enabled": {
                  "type": "boolean"
                },
                "runtime_update": {
                  "description": "Update secrets received from vault during runtime operations.",
                  "type": "boolean"
                },
                "auto_update": {
                  "description": "Update secrets in background.",
                  "type": "boolean"
                },
                "auto_update_expire_delta": {
                  "description": "Expire delta for auto update in seconds. 2678400 by default.",
                  "type": "integer"
                },
                "auto_update_type": {
                  "type": [
                    "number",
                    "string"
                  ],
                  "enum": [
                    "expire",
                    "always"
                  ]
                },
                "url": {
                  "type": [
                    "number",
                    "string"
                  ]
                },
                "ssl": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "enabled": {
                      "description": "Enables ssl connection to vault with client certificates. Enabled by default.",
                      "type": "boolean"
                    },
                    "certificate": {
                      "type": [
                        "number",
                        "string"
                      ]
                    },
                    "certificate_key": {
                      "type": [
                        "number",
                        "string"
                      ]
                    },
                    "ca": {
                      "type": [
                        "number",
                        "string"
                      ]
                    }
                  },
                  "allOf": [
                    {
                      "if": {
                        "type": "object",
                        "required": [
                          "certificate_key"
                        ],
                        "properties": {
                          "certificate_key": {
                            "pattern": ".+"
                          }
                        }
                      },
                      "then": {
                        "required": [
                          "certificate"
                        ]
                      }
                    },
                    {
                      "if": {
                        "type": "object",
                        "required": [
                          "certificate"
                        ],
                        "properties": {
                          "certificate": {
                            "pattern": ".+"
                          }
                        }
                      },
                      "then": {
                        "required": [
                          "certificate_key"
                        ]
                      }
                    },
                    {
                      "if": {
                        "type": "object",
                        "required": [
                          "enabled"
                        ],
                        "properties": {
                          "enabled": {
                            "const": false
                          }
                        }
                      },
                      "then": {
                        "required": []
                      },
                      "else": {
                        "required": [
                          "ca"
                        ]
                      }
                    }
                  ]
                },
                "storages": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "url": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "ssl": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Enables ssl connection to vault with client certificates. Enabled by default.",
                            "type": "boolean"
                          },
                          "certificate": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "certificate_key": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "ca": {
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        },
                        "allOf": [
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "certificate_key"
                              ],
                              "properties": {
                                "certificate_key": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "certificate"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "certificate"
                              ],
                              "properties": {
                                "certificate": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "certificate_key"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "enabled"
                              ],
                              "properties": {
                                "enabled": {
                                  "const": false
                                }
                              }
                            },
                            "then": {
                              "required": []
                            },
                            "else": {
                              "required": [
                                "ca"
                              ]
                            }
                          }
                        ]
                      },
                      "path": {
                        "description": "Specifies storage name to lookup secrets (\"/DEV/SOWA/CF/KV/\" for example).",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "approle_role_id_file": {
                        "description": "Specifies path to file with approle role id",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "approle_wrapped_token_file": {
                        "description": "Specifies path to file with wrapped token which contains secret id",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "approle_wrapped_token_field": {
                        "description": "Specifies which field to use while unwrapping secret. \"secret_id\" by default.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "approle_namespace": {
                        "description": "Specifies approle namespace",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "secrets": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "type": {
                              "description": "Secret type, KV-secrets as default if not specified.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "sberca",
                                "kv"
                              ]
                            },
                            "base64_decode": {
                              "description": "Decode secret form base64. False by default.",
                              "type": "boolean"
                            },
                            "name": {
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "alias": {
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "key": {
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "certificate_alias": {
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "key_alias": {
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "ca_alias": {
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "format": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "pem",
                                "pem_bundle",
                                "jks"
                              ]
                            },
                            "email": {
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "common_name": {
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "alt_names": {
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "other_sans": {
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            },
                            "ip_sans": {
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            },
                            "uri_sans": {
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            },
                            "exclude_cn_from_sans": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "type"
                                ],
                                "properties": {
                                  "type": {
                                    "const": "kv"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "alias"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "type"
                                ],
                                "properties": {
                                  "type": {}
                                }
                              },
                              "else": {
                                "required": [
                                  "alias"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "type"
                                ],
                                "properties": {
                                  "type": {
                                    "const": "kv"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "key"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "type"
                                ],
                                "properties": {
                                  "type": {}
                                }
                              },
                              "else": {
                                "required": [
                                  "key"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "type"
                                ],
                                "properties": {
                                  "type": {
                                    "const": "sberca"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "certificate_alias"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "type"
                                ],
                                "properties": {
                                  "type": {
                                    "const": "sberca"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "common_name"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "type"
                                ],
                                "properties": {
                                  "type": {
                                    "const": "sberca"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "format"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "type"
                                ],
                                "properties": {
                                  "type": {
                                    "const": "sberca"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "email"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "type"
                                ],
                                "properties": {
                                  "type": {
                                    "const": "sberca"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "alt_names"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "type"
                                ],
                                "properties": {
                                  "type": {
                                    "const": "sberca"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "other_sans"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "type"
                                ],
                                "properties": {
                                  "type": {
                                    "const": "sberca"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ip_sans"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "type"
                                ],
                                "properties": {
                                  "type": {
                                    "const": "sberca"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "uri_sans"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "type"
                                ],
                                "properties": {
                                  "type": {
                                    "const": "sberca"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "exclude_cn_from_sans"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      }
                    },
                    "required": [
                      "path",
                      "secrets"
                    ],
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "approle_role_id_file"
                          ],
                          "properties": {
                            "approle_role_id_file": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "then": {
                          "required": [
                            "approle_role_id_file"
                          ]
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "approle_role_id_file"
                          ],
                          "properties": {
                            "approle_role_id_file": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "then": {
                          "required": [
                            "approle_wrapped_token_file"
                          ]
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "approle_role_id_file"
                          ],
                          "properties": {
                            "approle_role_id_file": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "then": {
                          "required": [
                            "approle_namespace"
                          ]
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "approle_wrapped_token_file"
                          ],
                          "properties": {
                            "approle_wrapped_token_file": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "approle_wrapped_token_field"
                            ]
                          }
                        }
                      }
                    ]
                  }
                }
              },
              "required": [
                "storages"
              ]
            },
            "healthcheck_dynamic": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "initial_state_param_file": {
                  "type": [
                    "number",
                    "string"
                  ],
                  "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                },
                "manual_state_var_refresh_interval": {
                  "type": [
                    "number",
                    "string"
                  ],
                  "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                },
                "endpoints": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "url": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "response": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "code": {
                            "description": "Specifies an array of error codes by which templates will be generated.",
                            "type": "array",
                            "items": {
                              "type": "integer"
                            }
                          },
                          "pattern_file": {
                            "description": "Specifies pattern file which will be used as response body.",
                            "type": "string",
                            "enum": [
                              "hc_pattern_default.json",
                              "hc_pattern_profile_default.json",
                              "hc_pattern_service_default.json"
                            ]
                          },
                          "custom_pattern_file": {
                            "description": "Specifies rule file which describes how to fill pattern file.",
                            "type": "string",
                            "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                          },
                          "rules_file": {
                            "description": "Specifies rule file which describes how to fill pattern file. Default - rules file from system resources.",
                            "type": "string",
                            "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                          },
                          "content_type": {
                            "description": "Specifies content type for response header. Default - none.",
                            "type": "string"
                          }
                        }
                      },
                      "upstream_check_type": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "ANY_UPSTREAM_UP",
                          "ALL_UPSTREAM_UP",
                          "ANY_UPSTREAM_UP_OR_DRAIN",
                          "ALL_UPSTREAM_UP_OR_DRAIN"
                        ]
                      },
                      "service_id": {
                        "description": "Binded service id",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "upstream_filter": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "disable_access_log": {
                        "description": "Disable writing access log, by default -false",
                        "type": "boolean"
                      },
                      "disable_error_log": {
                        "description": "Disable writing error log, default false",
                        "type": "boolean"
                      },
                      "disable_gathering_stats": {
                        "description": "Disable gathering stat, default false",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "url",
                      "response"
                    ]
                  }
                }
              }
            },
            "healthcheck": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "url": {
                  "description": "Specifies url for healthcheck.",
                  "type": [
                    "number",
                    "string"
                  ]
                },
                "content_type": {
                  "type": [
                    "number",
                    "string"
                  ]
                },
                "content_encoding": {
                  "type": [
                    "number",
                    "string"
                  ]
                },
                "disable_access_log": {
                  "description": "Disable writing access log, by default -false",
                  "type": "boolean"
                },
                "disable_error_log": {
                  "description": "Disable writing error log, default false",
                  "type": "boolean"
                },
                "disable_gathering_stats": {
                  "description": "Disable gathering stat, default false",
                  "type": "boolean"
                }
              },
              "required": [
                "url"
              ]
            },
            "disable_listen": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "active": {
                  "description": "Enable stop listening port according condtions, default false",
                  "type": "boolean"
                },
                "condition": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "check_type": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "no_live_upstream"
                        ]
                      },
                      "drain_is_up": {
                        "description": "Decode drain state of upstream as \"up\" state. On by default",
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "passive_hc_mode": {
                        "description": "-> Set mode for decode state for upstreams with passive health-check. When exclude, listen ports binded to service which has an upstream group with passive HC, will be exluded from automatic stop/start listening. When ignore, state of upstream group with passive hc always up When inlude, state of upstream group with passive hc always calculated and used. By default - exclude",
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "exclude",
                          "ignore",
                          "include"
                        ]
                      },
                      "not_binded_mode": {
                        "type": "array",
                        "uniqueItems": true,
                        "items": {
                          "description": "Additionaly close up listening ports on service which not binded to upstream groups - status - profile status service, \"non_upstream\", services which not has http upstream groups",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "status",
                            "non_upstream"
                          ]
                        }
                      },
                      "custom_binds": {
                        "description": "Allow to manual specify ports - upstream groups for autoclose listen. Used, when service binded to some port not have upstream group (e.g. service_http_kafka_proxy)",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "port": {
                              "description": "Port for autoclose",
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 65535
                            },
                            "service_id": {
                              "description": "id of service which upstream group will be used",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "service_type": {
                              "description": "type of service which upstream group will be used",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "service_main_proxy",
                                "service_http_proxy",
                                "service_web_socket_proxy"
                              ]
                            },
                            "upstream_id": {
                              "description": "id  of upstream group",
                              "type": [
                                "number",
                                "string"
                              ]
                            }
                          }
                        }
                      },
                      "skip_ports": {
                        "description": "Ports defined in this section will not be closed ever by autoclose listen mechanism",
                        "type": "array",
                        "items": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 65535
                        }
                      }
                    },
                    "required": [
                      "check_type"
                    ],
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "check_type"
                          ],
                          "properties": {
                            "check_type": {
                              "const": "no_live_upstream"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "drain_is_up"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "check_type"
                          ],
                          "properties": {
                            "check_type": {
                              "const": "no_live_upstream"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "passive_hc_mode"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "check_type"
                          ],
                          "properties": {
                            "check_type": {
                              "const": "no_live_upstream"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "not_binded_mode"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "check_type"
                          ],
                          "properties": {
                            "check_type": {
                              "const": "no_live_upstream"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "custom_binds"
                            ]
                          }
                        }
                      }
                    ]
                  }
                }
              },
              "required": [
                "condition"
              ]
            },
            "opentelemetry": {
              "description": "Common parameters of opentelemetry tracing",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "exporter": {
                  "description": "Define connection param to OTLP/GRPC agent",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "endpoint": {
                      "description": "the address of OTLP/gRPC endpoint that will accept telemetry data.",
                      "type": [
                        "number",
                        "string"
                      ]
                    },
                    "interval": {
                      "description": "the maximum interval between two exports, by default is 5 seconds.",
                      "type": [
                        "number",
                        "string"
                      ],
                      "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                    },
                    "batch_size": {
                      "description": "the maximum number of spans to be sent in one batch per worker, by default is 512",
                      "type": "integer"
                    },
                    "batch_count": {
                      "description": "the number of pending batches per worker, spans exceeding the limit are dropped, by default is 4",
                      "type": "integer"
                    }
                  },
                  "required": [
                    "endpoint"
                  ]
                },
                "service_name": {
                  "description": "Sets the “service.name” attribute of the OTel resource, by default profile_name.sowa",
                  "type": [
                    "number",
                    "string"
                  ]
                },
                "chains_tracing": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "enabled": {
                      "description": "Allow tracing in chains",
                      "type": "boolean"
                    },
                    "disableAllChainsByDefault": {
                      "description": "Disable all chains tracing by default. In flag set to true",
                      "type": "boolean"
                    }
                  }
                },
                "tracing": {
                  "description": "Defines parameters of Opentelemetry Tracing",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "mode": {
                      "description": "Enable or disable tracing at this level",
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "enabled": {
                          "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "on",
                            "off",
                            "var_based"
                          ]
                        },
                        "var": {
                          "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "enabled"
                            ],
                            "properties": {
                              "enabled": {
                                "const": "var_based"
                              }
                            }
                          },
                          "then": {
                            "required": [
                              "var"
                            ]
                          }
                        }
                      ]
                    },
                    "trace_context": {
                      "description": "Specifies how to propagate traceparent/tracestate headers.   Default - ignore",
                      "type": [
                        "number",
                        "string"
                      ],
                      "enum": [
                        "extract",
                        "inject",
                        "propagate",
                        "ignore"
                      ]
                    },
                    "span_name": {
                      "description": "Defines the name of span. By default - name of location, can be contain variables",
                      "type": [
                        "number",
                        "string"
                      ]
                    },
                    "span_attr": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "name": {
                            "description": "name of attribute",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "value": {
                            "description": "value of attribute, can contain variables",
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              },
              "required": [
                "exporter"
              ],
              "allOf": [
                {
                  "if": {
                    "type": "object",
                    "required": [
                      ""
                    ],
                    "properties": {
                      "": {
                        "properties": {
                          "system": {
                            "type": "object",
                            "required": [
                              "system"
                            ],
                            "properties": {
                              "system": {},
                              "optional": {
                                "type": "object",
                                "required": [
                                  "opentelemetry"
                                ],
                                "properties": {
                                  "opentelemetry": {
                                    "pattern": ".+"
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "else": {
                    "not": {
                      "required": [
                        "tracing"
                      ]
                    }
                  }
                }
              ]
            },
            "client_body_buffer_size": {
              "description": "Sets buffer size for reading client request body. Default By default, buffer size is equal to two memory pages. For x86 it is usually 8K.",
              "type": [
                "number",
                "string"
              ],
              "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
            },
            "client_body_in_file_only": {
              "description": "Determines whether nginx should save the entire client request body into a file. By default is off.",
              "type": "string",
              "enum": [
                "on",
                "off",
                "clean"
              ]
            },
            "client_body_in_single_buffer": {
              "description": "Determines whether nginx should save the entire client request body in a single buffer. By default is off.",
              "type": "string",
              "enum": [
                "on",
                "off"
              ]
            },
            "client_header_buffer_size": {
              "description": "Sets buffer size for reading client request header. By default is 1k.",
              "type": [
                "number",
                "string"
              ],
              "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
            },
            "large_client_header_buffers": {
              "description": "Sets the maximum number and size of buffers used for reading large client request header. By default the number is 4, the size is 4k.",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "number": {
                  "type": "integer"
                },
                "size": {
                  "type": [
                    "number",
                    "string"
                  ],
                  "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                }
              },
              "required": [
                "number",
                "size"
              ]
            },
            "output_buffers": {
              "description": "Sets the number and size of the buffers used for reading a response from a disk. By default the number is 2, the size is 32k.",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "number": {
                  "type": "integer"
                },
                "size": {
                  "type": [
                    "number",
                    "string"
                  ],
                  "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                }
              },
              "required": [
                "number",
                "size"
              ]
            },
            "subrequest_output_buffer_size": {
              "description": "Sets the size of the buffer used for storing the response body of a subrequest. By default, the buffer size is equal to one memory page.",
              "type": [
                "number",
                "string"
              ],
              "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
            },
            "proxy_buffer_size": {
              "description": "Sets the size of the buffer used for reading the first part of the response received from the proxied server. By default, the buffer size is equal to one memory page.",
              "type": [
                "number",
                "string"
              ],
              "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
            },
            "proxy_buffering": {
              "description": "Enables or disables buffering of responses from the proxied server. By default is on.",
              "type": "string",
              "enum": [
                "on",
                "off"
              ]
            },
            "proxy_buffers": {
              "description": "Sets the number and size of the buffers used for reading a response from the proxied server, for a single connection. By default the number is 8, the size is equal to one memory page.",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "number": {
                  "type": "integer"
                },
                "size": {
                  "type": [
                    "number",
                    "string"
                  ],
                  "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                }
              },
              "required": [
                "number",
                "size"
              ]
            },
            "proxy_busy_buffers_size": {
              "description": "When buffering of responses from the proxied server is enabled, limits the total size of buffers that can be busy sending a response to the client while the response is not yet fully read. By default, size is limited by the size of two buffers set by the proxy_buffer_size and proxy_buffers directives.",
              "type": [
                "number",
                "string"
              ],
              "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
            },
            "proxy_request_buffering": {
              "description": "Enables or disables buffering of a client request body. By default is on.",
              "type": "string",
              "enum": [
                "on",
                "off"
              ]
            },
            "proxy_max_temp_file_size": {
              "description": "When buffering of responses from the proxied server is enabled, and the whole response does not fit into the buffers set by the proxy_buffer_size and proxy_buffers directives, a part of the response can be saved to a temporary file. This directive sets the maximum size of the temporary file. The size of data written to the temporary file at a time is set by the proxy_temp_file_write_size directive. The zero value disables buffering of responses to temporary files.",
              "type": [
                "number",
                "string"
              ],
              "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
            },
            "proxy_temp_file_write_size": {
              "description": "Limits the size of data written to a temporary file at a time, when buffering of responses from the proxied server to temporary files is enabled. By default, size is limited by two buffers set by the proxy_buffer_size and proxy_buffers directives. The maximum size of a temporary file is set by the proxy_max_temp_file_size directive.",
              "type": [
                "number",
                "string"
              ],
              "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
            },
            "proxy_max_downstream_presend_inmemory_size": {
              "description": "When used body filters such Modsecurity or Response size body filter, we always read all upstream data before sending client. Setting this parameter adjust maximum data in memory size, if 0 specified limit is not setted",
              "type": [
                "number",
                "string"
              ],
              "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
            },
            "worker_clean_cache_on_fail": {
              "description": "Whether to clean worker chache file on failure exit. Default is true (clean).",
              "type": "boolean"
            },
            "worker_cpu_affinity": {
              "description": "Binds worker processes to the sets of CPUs. Each CPU set is represented by a bitmask of allowed CPUs. There should be a separate set defined for each of the worker processes. By default, worker processes are not bound to any specific CPUs. Default auto",
              "type": [
                "number",
                "string"
              ],
              "pattern": "^(auto(?:\\s+[01]+)*|[01]+(?:\\s+[01]+)*)$"
            },
            "allocator_type": {
              "description": "Choice SOWA allocator",
              "type": "string",
              "enum": [
                "std",
                "mimalloc",
                "jemalloc"
              ]
            },
            "allocator_env": {
              "description": "Environment setting for allocator",
              "type": "array",
              "items": {
                "type": [
                  "number",
                  "string"
                ],
                "pattern": "^(MALLOC_CONF|MIMALLOC_\\w*)=[\"']?[^\"';\\s]+[\"']?$"
              }
            }
          },
          "allOf": [
            {
              "if": {
                "type": "object",
                "required": [
                  "jvm"
                ],
                "properties": {
                  "jvm": {}
                }
              },
              "then": {
                "not": {
                  "required": [
                    "jvm_options"
                  ]
                }
              }
            },
            {
              "if": {
                "type": "object",
                "required": [
                  "jvm_options"
                ],
                "properties": {
                  "jvm_options": {}
                }
              },
              "then": {
                "not": {
                  "required": [
                    "jvm"
                  ]
                }
              }
            },
            {
              "if": {
                "type": "object",
                "required": [
                  "strict_hostname_check"
                ],
                "properties": {
                  "strict_hostname_check": {
                    "pattern": ".+"
                  }
                }
              },
              "else": {
                "not": {
                  "required": [
                    "hostname_error_code"
                  ]
                }
              }
            },
            {
              "if": {
                "type": "object",
                "required": [
                  ".."
                ],
                "properties": {
                  "..": {
                    "type": "object",
                    "required": [
                      "listen"
                    ],
                    "properties": {
                      "listen": {
                        "pattern": ".+"
                      }
                    }
                  }
                }
              },
              "else": {
                "not": {
                  "required": [
                    "healthcheck_dynamic"
                  ]
                }
              }
            },
            {
              "if": {
                "type": "object",
                "required": [
                  "http_version"
                ],
                "properties": {
                  "http_version": {}
                }
              },
              "then": {
                "not": {
                  "required": [
                    "proxy_buffering"
                  ]
                }
              }
            },
            {
              "if": {
                "type": "object",
                "required": [
                  "http_version"
                ],
                "properties": {
                  "http_version": {}
                }
              },
              "then": {
                "not": {
                  "required": [
                    "proxy_buffers"
                  ]
                }
              }
            },
            {
              "if": {
                "type": "object",
                "required": [
                  "http_version"
                ],
                "properties": {
                  "http_version": {}
                }
              },
              "then": {
                "not": {
                  "required": [
                    "proxy_busy_buffers_size"
                  ]
                }
              }
            },
            {
              "if": {
                "type": "object",
                "required": [
                  "http_version"
                ],
                "properties": {
                  "http_version": {}
                }
              },
              "then": {
                "not": {
                  "required": [
                    "proxy_request_buffering"
                  ]
                }
              }
            },
            {
              "if": {
                "type": "object",
                "required": [
                  "http_version"
                ],
                "properties": {
                  "http_version": {}
                }
              },
              "then": {
                "not": {
                  "required": [
                    "proxy_max_temp_file_size"
                  ]
                }
              }
            },
            {
              "if": {
                "type": "object",
                "required": [
                  "http_version"
                ],
                "properties": {
                  "http_version": {}
                }
              },
              "then": {
                "not": {
                  "required": [
                    "proxy_temp_file_write_size"
                  ]
                }
              }
            },
            {
              "if": {
                "type": "object",
                "required": [
                  "http_version"
                ],
                "properties": {
                  "http_version": {}
                }
              },
              "then": {
                "not": {
                  "required": [
                    "proxy_max_downstream_presend_inmemory_size"
                  ]
                }
              }
            },
            {
              "if": {
                "type": "object",
                "required": [
                  "_type"
                ],
                "properties": {
                  "_type": {
                    "pattern": ".+"
                  }
                }
              },
              "else": {
                "not": {
                  "required": [
                    "allocator_env"
                  ]
                }
              }
            }
          ]
        }
      }
    },
    "service": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "service_http_proxy": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "Specifies the unique id for the service.",
                "type": [
                  "number",
                  "string"
                ],
                "pattern": "^[^.\\/\\\\()]+$"
              },
              "name": {
                "description": "Human readable Service identifier printed in log messages",
                "type": [
                  "number",
                  "string"
                ]
              },
              "profile_version": {
                "description": "Specifies profile version of this service",
                "type": [
                  "number",
                  "string"
                ]
              },
              "description": {
                "type": [
                  "number",
                  "string"
                ]
              },
              "listen": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "address": {
                      "description": "specifies ip/hostname on which the socket will listen.",
                      "type": [
                        "number",
                        "string"
                      ]
                    },
                    "port": {
                      "description": "specifies port on which the socket will listen",
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 65535
                    },
                    "allow_http2": {
                      "description": "Allow to accept http2 connection. Default - false",
                      "type": "boolean"
                    },
                    "proxy_protocol": {
                      "description": "Accept proxy protocol. Http requests will not be handler with this flag. Default - false",
                      "type": "boolean"
                    },
                    "http2_only": {
                      "description": "Allow to pass only http2 protocol connection. Default - off",
                      "type": "string",
                      "enum": [
                        "on",
                        "off"
                      ]
                    },
                    "ssl": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "sspi": {
                          "description": "Enables GOST TLS mode. Default id false.",
                          "type": "boolean"
                        },
                        "client_verify_local_crl_only": {
                          "description": "GOST mode. Specifies whether to check the certificate status locally (otherwise check online). Default is \"off\" (online check).",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "buffer_size": {
                          "description": "GOST mode. Specifies payload length in TLS record (min 1024, max 16384). Default is 16384 bytes.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^([0-9]+[kK]{1})|([0-9]+)$"
                        },
                        "certificate": {
                          "description": "specifies name of the certificate wich will be used. Certificate must be placed in \"resource\" directory.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "certificate_key": {
                          "description": "specifies name of the certificate key wich will be used. Certificate key must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "password_file": {
                          "description": "specifies name of the password file with secret keys for \"certificate_key\". Password file must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "client_certificate": {
                          "description": "specifies name of the client certificate wich will be used. Client Certificate must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_client": {
                          "description": "Enables verification of client certificates. Default - no",
                          "type": "string"
                        },
                        "ocsp": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "enabled": {
                              "description": "Enables OCSP validation of the client certificate chain",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "depth": {
                              "description": "Specify depth of certificate validation.",
                              "type": "integer",
                              "minimum": 1
                            },
                            "mode": {
                              "description": "Specify mode. In strict mode request will be blocked in case unsuccessfull certiticate checking, in flexible mode - request will not be blocked. Strict by default.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "strict",
                                "flexible"
                              ]
                            },
                            "cache": {
                              "description": "Sets name and size of the cache that stores client certificates status for OCSP validation. The cache is shared between all worker processes",
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "size": {
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                },
                                "lifetime": {
                                  "description": "Specifies cache lifetime. 3600 seconds by default",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                                }
                              },
                              "required": [
                                "name",
                                "size"
                              ]
                            },
                            "use_cert_responder": {
                              "description": "Defines use or not responder from certificate(if specified). False by default",
                              "type": "boolean"
                            },
                            "responder_timeout": {
                              "description": "Specifies responder timeout. 60000 milliseconds by default",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                            },
                            "responders": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "regex;(.+)": {
                                  "type": "array",
                                  "uniqueItems": true,
                                  "items": {
                                    "description": "Specifies the URL of the OCSP responder specified in the “Authority Information Access” certificate extension for validation of client certificates. Only http:// OCSP responders are supported",
                                    "type": [
                                      "number",
                                      "string"
                                    ],
                                    "pattern": "^(?:http:\\/\\/).+$"
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "enabled",
                            "depth"
                          ]
                        },
                        "verify_dn_trusted_path": {
                          "description": "Turn on verification of client dn. Use this file to match all regex dn from this file with dn of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_client_error_code": {
                          "description": "Defines the response code if verification client certificate failed. Default value is \"495\"(400)",
                          "type": "integer"
                        },
                        "verify_fingerprint_trusted_path": {
                          "description": "Turn on verification of client fingerprint. Use this file to match all fingerprints from file with fingerprint of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_depth": {
                          "description": "Sets the verification depth in the client certificates chain. Default - 1",
                          "type": "integer"
                        },
                        "protocols": {
                          "description": "specifies used ciphers. The default value is \"LSv1 TLSv1.1 TLSv1.2\" for RSA, and \"TLSv1\" for GOST",
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string"
                          }
                        },
                        "ciphers": {
                          "description": "specifies group of ciphes. The default value is \"HIGH:!aNULL:!MD5\".",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "prefix": {
                                "type": "string",
                                "enum": [
                                  "!",
                                  "+",
                                  "-"
                                ]
                              },
                              "value": {
                                "type": "array",
                                "uniqueItems": true,
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "DEFAULT",
                                    "COMPLEMENTOFDEFAULT",
                                    "ALL",
                                    "COMPLEMENTOFALL",
                                    "HIGH",
                                    "MEDIUM",
                                    "LOW",
                                    "EXP",
                                    "EXPORT",
                                    "EXPORT40",
                                    "EXPORT56",
                                    "eNULL",
                                    "NULL",
                                    "aNULL",
                                    "kRSA",
                                    "RSA",
                                    "kDHr",
                                    "kDHd",
                                    "kDH",
                                    "kDHE",
                                    "kEDH",
                                    "DHE",
                                    "EDH",
                                    "ADH",
                                    "DH",
                                    "kECDHr",
                                    "kECDHe",
                                    "kECDH",
                                    "kECDHE",
                                    "kEECDH",
                                    "ECDHE",
                                    "EECDH",
                                    "AECDH",
                                    "ECDH",
                                    "aRSA",
                                    "aDSS",
                                    "DSS",
                                    "aDH",
                                    "aECDH",
                                    "aECDSA",
                                    "ECDSA",
                                    "kFZA",
                                    "aFZA",
                                    "eFZA",
                                    "FZA",
                                    "TLSv1.2",
                                    "TLSv1",
                                    "SSLv3",
                                    "SSLv2",
                                    "AES128",
                                    "AES256",
                                    "AES",
                                    "AESGCM",
                                    "CAMELLIA128",
                                    "CAMELLIA256",
                                    "CAMELLIA",
                                    "3DES",
                                    "DES",
                                    "RC4",
                                    "RC2",
                                    "IDEA",
                                    "SEED",
                                    "MD5",
                                    "SHA1",
                                    "SHA",
                                    "SHA256",
                                    "SHA384",
                                    "aGOST",
                                    "aGOST01",
                                    "aGOST94",
                                    "kGOST",
                                    "GOST94",
                                    "GOST89MAC",
                                    "PSK",
                                    "SUITEB128",
                                    "SUITEB128ONLY",
                                    "SUITEB192",
                                    "@STRENGTH",
                                    "NULL-SHA256"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "value"
                            ]
                          }
                        },
                        "ciphers_str": {
                          "description": "specifies string of ciphers.",
                          "type": "string"
                        },
                        "dhparam": {
                          "description": "Specifies a file with DH parameters for DHE ciphers and enable usage of DHE ciphers.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "session_timeout": {
                          "description": "specifies timeout of the ssl session. The default value is \"10m\"",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                        },
                        "session_cache": {
                          "description": "specifies cache size for ssl session. The default value evaluates automatically.",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "off",
                                "none",
                                "builtin",
                                "shared"
                              ]
                            },
                            "name": {
                              "type": "string"
                            },
                            "size": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "reject_handshake": {
                          "description": "specifies whether reject all SSL handshake with a different server name (strict SNI check). Default is false.",
                          "type": "boolean"
                        },
                        "stapling": {
                          "description": "enables or disables stapling of OCSP responses by the server. Default - false.",
                          "type": "boolean"
                        },
                        "stapling_file": {
                          "description": "when set, the stapled OCSP response will be taken from the specified file instead of querying the OCSP responder specified in the server certificate.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "stapling_responder": {
                          "description": "overrides the URL of the OCSP responder specified in the “Authority Information Access” certificate extension.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "stapling_verify": {
                          "description": "enables or disables verification of OCSP responses by the server. For verification to work, the certificate of the server certificate issuer, the root certificate, and all intermediate certificates should be configured as trusted using the trusted_certificate directive. Default - false.",
                          "type": "boolean"
                        },
                        "trusted_certificate": {
                          "description": "specifies a file with trusted CA certificates in the PEM format used to verify client certificates and OCSP responses if stapling is enabled.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        }
                      },
                      "required": [
                        "certificate"
                      ],
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling_verify"
                            ],
                            "properties": {
                              "stapling_verify": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "then": {
                            "required": [
                              "trusted_certificate"
                            ]
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "verify_dn_trusted_path"
                            ],
                            "properties": {
                              "verify_dn_trusted_path": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "verify_client_error_code"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "verify_fingerprint_trusted_path"
                            ],
                            "properties": {
                              "verify_fingerprint_trusted_path": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "verify_client_error_code"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "ciphers_str"
                            ],
                            "properties": {
                              "ciphers_str": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "ciphers"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "ciphers"
                            ],
                            "properties": {
                              "ciphers": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "ciphers_str"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "certificate"
                            ],
                            "properties": {
                              "certificate": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_file"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_responder"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_verify"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling_verify"
                            ],
                            "properties": {
                              "stapling_verify": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "trusted_certificate"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              },
              "hostname": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "url": {
                "description": "Defines the relative URL by which the service will work.",
                "type": "string"
              },
              "use_main_upstream_groups": {
                "description": "Defines whether to use upstream groups from main proxy.",
                "type": "boolean"
              },
              "upstream_group_id": {
                "description": "Specifies ID of the upstream group.",
                "type": [
                  "number",
                  "string"
                ]
              },
              "upstream_bind_variable": {
                "description": "Specifies a variable that is used to bind upstream group along with \"bind_condition\".",
                "type": "string"
              },
              "upstream_groups": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "description": "Specifies the unique id for the upstream group.",
                      "type": [
                        "number",
                        "string"
                      ],
                      "pattern": "^[^.\\/\\\\()-]+$"
                    },
                    "ssl": {
                      "description": "Specifies the type of connection - http or https. The default value is \"http\"",
                      "type": "boolean"
                    },
                    "rewrite_uri": {
                      "description": "Allows you to replace the URL which is going to the backend.",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "from": {
                            "description": "Specify a regular expression that matches the URI.",
                            "type": "string"
                          },
                          "to": {
                            "description": "Specify string to replace URI that matches regular expression in parameter \"from\". You can use substitutions (like this $1, $2, etc.) according your regular expression.",
                            "type": "string"
                          }
                        },
                        "required": [
                          "from",
                          "to"
                        ]
                      }
                    },
                    "bind_context": {
                      "description": "Specifies bind context condition pattern. Used when \"use_upstream_groups=True\" in main proxy service.",
                      "type": "string",
                      "pattern": "^\\^.*\\$$"
                    },
                    "bind_condition": {
                      "description": "Specifies a variable value that will be used as bind condition for this upstream group. If you use this parameter and you have several upstream groups, then one of them should be declared as default.",
                      "type": "string"
                    },
                    "default": {
                      "description": "Specifies that this upstream group is default. Used along with bind_condition.",
                      "type": "boolean"
                    },
                    "zone": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "description": "Define the name of upstream zone",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "size": {
                          "description": "Define the size of upstream zone. Default 1m",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                        }
                      },
                      "required": [
                        "name"
                      ]
                    },
                    "keepalive_conn_count": {
                      "description": "Defines maximum count of keepalive connections to upstream group per worker process.",
                      "type": "integer"
                    },
                    "keepalive_requests": {
                      "description": "Defines maximum count of requests per connection. 100 by default.",
                      "type": "integer"
                    },
                    "keepalive_timeout": {
                      "description": "Defines a timeout during which a connection will stay open. The default value is \"60s\".",
                      "type": [
                        "number",
                        "string"
                      ],
                      "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                    },
                    "health_check": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "enabled": {
                          "description": "Enable health_check module",
                          "type": "boolean"
                        },
                        "check_interval": {
                          "description": "Specifies check request's interval time in milliseconds.",
                          "type": "integer"
                        },
                        "check_interval_down": {
                          "description": "Specifies check request's interval time if peer is down.",
                          "type": "integer"
                        },
                        "fail_count": {
                          "description": "Specifies number of failed requests to mark server as down.",
                          "type": "integer"
                        },
                        "rise_count": {
                          "description": "Specifies number of successful requests to mark server as down.",
                          "type": "integer"
                        },
                        "drain": {
                          "description": "Specifies number of failed requests to mark server as drain.",
                          "type": "integer"
                        },
                        "timeout": {
                          "description": "Specifies check request's timeout.",
                          "type": "integer"
                        },
                        "default_state": {
                          "description": "Specifies default server state.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "up",
                            "down"
                          ]
                        },
                        "port": {
                          "description": "Specifies port to send check requests.",
                          "type": "integer"
                        },
                        "type": {
                          "description": "Specifies check request type.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "tcp",
                            "ssl_hello",
                            "http",
                            "mysql",
                            "ajp",
                            "fastcgi"
                          ]
                        },
                        "http_send_method": {
                          "description": "Specifies http method, default POST if http_send_req is defined, GET otherwise",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "GET",
                            "POST"
                          ]
                        },
                        "http_send_url": {
                          "description": "Specifies url for health check, default \"/\"",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^\\/.*$"
                        },
                        "http_send_version": {
                          "description": "Specifies http version, default 1.0",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            1.0,
                            1.1,
                            2.0
                          ]
                        },
                        "http_send_headers": {
                          "description": "Specifies request header line. For example 'X-MyHeader foo'.",
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "http_send_req": {
                          "description": "Specifies request body. (Deprecated - Specifies which req to send when check type is http)",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "fastcgi_param": {
                          "description": "Specifies which headers to send with fastcgi req",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "http_status_alive": {
                          "description": "Specifies which response code is ok",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "check_shm_size": {
                          "description": "Specifies shared memory size for checking large groups of servers",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "check_response_body": {
                          "description": "case insensitive search in resp body",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "check_response_body_pattern": {
                          "description": "case insensitive search in resp body by pattern",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "check_response_body_drain": {
                          "description": "case insensitive search in resp body",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "check_response_body_drain_pattern": {
                          "description": "case insensitive search in resp body by pattern",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "check_keepalive_req": {
                          "description": "Specifies the number of requests sent on a connection",
                          "type": "integer"
                        },
                        "check_status_type": {
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "html",
                            "csv",
                            "json"
                          ]
                        },
                        "ssl_options": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "ssl_use": {
                              "description": "Enables SSL. Default is 'off'.",
                              "type": "boolean"
                            },
                            "sspi": {
                              "description": "Enables GOST TLS mode. Default id false.",
                              "type": "boolean"
                            },
                            "ssl_verify_local_crl_only": {
                              "description": "GOST mode. Specifies whether to check the certificate status locally (otherwise check online). Default is \"off\" (online check).",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "ssl_verify_ignore_cn": {
                              "description": "GOST mode. Specifies whether to skip CN check. Default is \"off\" (do not skip).",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "ssl_session_reuse": {
                              "description": "Determines whether SSL sessions can be reused when working with the proxied server. Default is 'on'.",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "ssl_protocols": {
                              "description": "Enables the specified protocols for requests to a proxied HTTPS server. The default value is \"TLSv1 TLSv1.1 TLSv1.2\"",
                              "type": "array",
                              "uniqueItems": true,
                              "items": {
                                "type": "string",
                                "enum": [
                                  "SSLv2",
                                  "SSLv3",
                                  "TLSv1",
                                  "TLSv1.1",
                                  "TLSv1.2",
                                  "TLSv1.3"
                                ]
                              }
                            },
                            "ssl_ciphers": {
                              "description": "Specifies the enabled ciphers for requests to a proxied HTTPS server. The default value is \"HIGH:!aNULL:!MD5\".",
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "prefix": {
                                    "type": "string",
                                    "enum": [
                                      "!",
                                      "+",
                                      "-"
                                    ]
                                  },
                                  "value": {
                                    "type": "array",
                                    "uniqueItems": true,
                                    "items": {
                                      "type": "string",
                                      "enum": [
                                        "DEFAULT",
                                        "COMPLEMENTOFDEFAULT",
                                        "ALL",
                                        "COMPLEMENTOFALL",
                                        "HIGH",
                                        "MEDIUM",
                                        "LOW",
                                        "EXP",
                                        "EXPORT",
                                        "EXPORT40",
                                        "EXPORT56",
                                        "eNULL",
                                        "NULL",
                                        "aNULL",
                                        "kRSA",
                                        "RSA",
                                        "kDHr",
                                        "kDHd",
                                        "kDH",
                                        "kDHE",
                                        "kEDH",
                                        "DHE",
                                        "EDH",
                                        "ADH",
                                        "DH",
                                        "kECDHr",
                                        "kECDHe",
                                        "kECDH",
                                        "kECDHE",
                                        "kEECDH",
                                        "ECDHE",
                                        "EECDH",
                                        "AECDH",
                                        "ECDH",
                                        "aRSA",
                                        "aDSS",
                                        "DSS",
                                        "aDH",
                                        "aECDH",
                                        "aECDSA",
                                        "ECDSA",
                                        "kFZA",
                                        "aFZA",
                                        "eFZA",
                                        "FZA",
                                        "TLSv1.2",
                                        "TLSv1",
                                        "SSLv3",
                                        "SSLv2",
                                        "AES128",
                                        "AES256",
                                        "AES",
                                        "AESGCM",
                                        "CAMELLIA128",
                                        "CAMELLIA256",
                                        "CAMELLIA",
                                        "3DES",
                                        "DES",
                                        "RC4",
                                        "RC2",
                                        "IDEA",
                                        "SEED",
                                        "MD5",
                                        "SHA1",
                                        "SHA",
                                        "SHA256",
                                        "SHA384",
                                        "aGOST",
                                        "aGOST01",
                                        "aGOST94",
                                        "kGOST",
                                        "GOST94",
                                        "GOST89MAC",
                                        "PSK",
                                        "SUITEB128",
                                        "SUITEB128ONLY",
                                        "SUITEB192",
                                        "@STRENGTH",
                                        "NULL-SHA256"
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "value"
                                ]
                              }
                            },
                            "ssl_ciphers_str": {
                              "description": "Specifies the string of enabled ciphers for requests to a proxied HTTPS server.",
                              "type": "string"
                            },
                            "ssl_name": {
                              "description": "Allows overriding the server name used to verify the certificate of the proxied HTTPS server and to be passed through SNI when establishing a connection with the proxied HTTPS server. There is no default value.",
                              "type": "string"
                            },
                            "ssl_name_upstream_host": {
                              "description": "Enables using upstream host to verify the certificate of the proxied HTTPS server when ssl_name isn't specified. Default \"on\".",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "ssl_name_verify_off": {
                              "description": "Enable or disable ssl_name verifying",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "ssl_server_name": {
                              "description": "Enables or disables passing of the server name through TLS Server Name Indication extension (SNI, RFC 6066) when establishing a connection with the proxied HTTPS server. Default is \"off\".",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "ssl_verify": {
                              "description": "Enables or disables verification of the proxied HTTPS server certificate. Default is \"off\"",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "ssl_verify_depth": {
                              "description": "Sets the verification depth in the proxied HTTPS server certificates chain. Default is \"1\".",
                              "type": "integer",
                              "minimum": 0
                            },
                            "ssl_trusted_certificate": {
                              "description": "Specifies a file with trusted CA certificates in the PEM format used to verify the certificate of the proxied HTTPS server. There is no default value.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "ssl_dn_verify_trusted_path": {
                              "description": "Specifies the file with allowed regex of client certificate dn",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "ssl_fingerprint_verify_trusted_path": {
                              "description": "Specifies the file with allowed regex of client certificate dn",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "ssl_verify_error_code": {
                              "description": "Defines the response code if verification upstream certificate failed.",
                              "type": "integer"
                            },
                            "ssl_crl": {
                              "description": "Specifies a file with revoked certificates (CRL) in the PEM format used to verify the certificate of the proxied HTTPS server. There is no default value.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "ssl_certificate": {
                              "description": "Specifies a file with the certificate in the PEM format used for authentication to a proxied HTTPS server. There is no default value.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "ssl_certificate_key": {
                              "description": "Specifies a file with the secret key in the PEM format used for authentication to a proxied HTTPS server. There is no default value.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "ssl_password_file": {
                              "description": "Specifies a file with passphrases for secret keys where each passphrase is specified on a separate line. There is no default value.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            }
                          },
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_session_reuse"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_protocols"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_server_name"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_verify"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_verify_depth"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_dn_verify_trusted_path"
                                ],
                                "properties": {
                                  "ssl_dn_verify_trusted_path": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_verify_error_code"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_fingerprint_verify_trusted_path"
                                ],
                                "properties": {
                                  "ssl_fingerprint_verify_trusted_path": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_verify_error_code"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_crl"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_certificate"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_certificate_key"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_password_file"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      },
                      "required": [
                        "enabled"
                      ]
                    },
                    "load_balancing": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "type": {
                          "description": "Specifies a load balancing type",
                          "type": "string",
                          "enum": [
                            "hash",
                            "ip_hash",
                            "sticky",
                            "persistence",
                            "least_conn",
                            "random"
                          ]
                        },
                        "random_two": {
                          "description": "Selects only two servers by their weights before using least connections balancing.",
                          "type": "boolean"
                        },
                        "hash_consistent": {
                          "description": "If the consistent parameter is specified the ketama consistent hashing method will be used instead",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "hash_key": {
                          "description": "The client-server mapping is based on the hashed key value",
                          "type": "string"
                        },
                        "name": {
                          "description": "The name of the cookies used to track the persistant upstream srv. The default value is route",
                          "type": "string"
                        },
                        "domain": {
                          "description": "The domain in which the cookie will be valid. By default browser handle this.",
                          "type": "string"
                        },
                        "path": {
                          "description": "The path in which the cookie will be valid. By default browser handle this.",
                          "type": "string"
                        },
                        "expires": {
                          "description": "The validity duration of the cookie. By default it's a session cookie",
                          "type": "string",
                          "pattern": "^([0-9]+[smhdwMy]{1})$"
                        },
                        "hash": {
                          "description": "The hash mechanism to encode upstream server. It can't be used with hmac. Default value is md5",
                          "type": "string",
                          "enum": [
                            "md5",
                            "sha1",
                            "index"
                          ]
                        },
                        "hmac": {
                          "description": "the HMAC hash mechanism to encode upstream server. It's like the hash mechanism but it uses hmac_key to secure the hashing. It can't be used with hash.",
                          "type": "string",
                          "enum": [
                            "md5",
                            "sha1"
                          ]
                        },
                        "hmac_key": {
                          "description": "the key to use with hmac. It's mandatory when hmac is set",
                          "type": "string"
                        },
                        "no_fallback": {
                          "description": "when this flag is set, nginx will return a 502 (Bad Gateway or Proxy Error) if a request comes with a cookie and the corresponding backend is unavailable",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "secure": {
                          "description": "Enable secure cookies. Transferred only via https. The default value is false",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "httponly": {
                          "description": "Enable cookies not to be leaked via js. The default value is false",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "persistence_type": {
                          "description": "Specifies persistence type.",
                          "type": "string",
                          "enum": [
                            "insert_cookie",
                            "session_based"
                          ]
                        },
                        "monitor_cookie": {
                          "type": "string"
                        },
                        "always_use_sticky": {
                          "type": "boolean"
                        },
                        "timeout": {
                          "description": "Specifies cookie expire time.",
                          "type": "integer"
                        },
                        "reset_uri": {
                          "description": "Requesting this uri will result in resetting session cookie.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^\\/.*$"
                        },
                        "reset_uri_pattern": {
                          "description": "Requesting uri which corresponds this regex pattern will result in resetting session cookie.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "reset_cookie": {
                          "description": "If active and monitor_cookie is not in request, session cookie will be reset. Default is \"False\".",
                          "type": "boolean"
                        },
                        "max_age": {
                          "description": "Sets Max-Age flag for sticky session cookie. Number of seconds until the cookie expires. A zero or negative number will expire the cookie immediately.",
                          "type": "integer"
                        },
                        "tail": {
                          "description": "Specifies cookie tail. Search value for specified key within response headers by default. Possible to specify variables also.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "tail_delimiter": {
                          "description": "Specifies cookie tail delimiter. Allowed only one character.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^.{1}$"
                        }
                      },
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "tail"
                            ],
                            "properties": {
                              "tail": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "then": {
                            "required": [
                              "tail_delimiter"
                            ]
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "tail"
                            ],
                            "properties": {
                              "tail": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "tail_delimiter"
                              ]
                            }
                          }
                        }
                      ]
                    },
                    "servers": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "service_id": {
                            "description": "specifies service id",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "service_type": {
                            "description": "specifies service type",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "server": {
                            "description": "specifies server name or IP address with port. The default port is 80.",
                            "type": "string"
                          },
                          "weight": {
                            "description": "specifies weight of the server. The default value is \"1\".",
                            "type": "integer"
                          },
                          "max_conns": {
                            "description": "specifies the maximum number of the concurrent connections to the upstream. The default value is \"0\" that means there are no limits.",
                            "type": "integer"
                          },
                          "max_fails": {
                            "description": "specifies the maximum number of failures during the \"fail_timeout\" after which this server will be marked as unreachable. The default value is \"1\".",
                            "type": "integer"
                          },
                          "fail_timeout": {
                            "description": "specifies the time during which failures should occur after which this server will be marked as unreachable. The default value is \"10s\".",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                          },
                          "backup": {
                            "description": "marks this server as a backup. If all basic servers are unavailable all request will be redirected to this one.",
                            "type": "boolean"
                          },
                          "slow_start": {
                            "description": "Sets the time during which the server will recover its weight from zero to a nominal value, when unhealthy server becomes healthy. Applicable when more than one peer is specified.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^[0-9]+[smhdwMy]{1}$"
                          },
                          "hash": {
                            "description": "Specifies a hash that will be associated with node during sticky balancing choice",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "enable_dp_hash": {
                            "description": "Enables generating hash from \"IP:port\" by internal DP algorithm",
                            "type": "boolean"
                          }
                        },
                        "allOf": [
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "server"
                              ],
                              "properties": {
                                "server": {}
                              }
                            },
                            "else": {
                              "required": [
                                "service_id"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "service_id"
                              ],
                              "properties": {
                                "service_id": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "service_type"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "service_id"
                              ],
                              "properties": {
                                "service_id": {}
                              }
                            },
                            "else": {
                              "required": [
                                "server"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "server"
                              ],
                              "properties": {
                                "server": {}
                              }
                            },
                            "then": {
                              "not": {
                                "required": [
                                  "service_id"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "service_id"
                              ],
                              "properties": {
                                "service_id": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "service_type"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "service_id"
                              ],
                              "properties": {
                                "service_id": {}
                              }
                            },
                            "then": {
                              "not": {
                                "required": [
                                  "server"
                                ]
                              }
                            }
                          }
                        ]
                      }
                    }
                  },
                  "required": [
                    "id",
                    "servers"
                  ],
                  "allOf": [
                    {
                      "if": {
                        "type": "object",
                        "required": [
                          "bind_condition"
                        ],
                        "properties": {
                          "bind_condition": {
                            "pattern": ".+"
                          }
                        }
                      },
                      "else": {
                        "not": {
                          "required": [
                            "default"
                          ]
                        }
                      }
                    }
                  ]
                }
              },
              "allowed_queries": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "method": {
                      "type": "string",
                      "enum": [
                        "get",
                        "head",
                        "post",
                        "put",
                        "options",
                        "trace",
                        "patch",
                        "delete"
                      ]
                    },
                    "decodeUrl": {
                      "description": "By default mds use url-decoded request parameters",
                      "type": "boolean"
                    },
                    "strict_params_check": {
                      "description": "False by default. Allows to block undescribed params and paramless requests.",
                      "type": "boolean"
                    },
                    "undescribed": {
                      "description": "False by default when no params, true when params present. Deny or pass request with undescribed request query params",
                      "type": "boolean"
                    },
                    "params": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "pattern": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^((?!\\(\\?i\\)|\\(\\?-i\\)).)*$"
                          }
                        },
                        "required": [
                          "name",
                          "pattern"
                        ]
                      }
                    }
                  },
                  "required": [
                    "method"
                  ]
                }
              },
              "optional": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "service_cache": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "phase": {
                        "description": "Defines the phase, on which we need to use cache. Default rewrite. When service is defined not in service_http_proxy use content by default",
                        "type": "string",
                        "enum": [
                          "access_handler",
                          "body_filter",
                          "rewrite_handler"
                        ]
                      },
                      "store_name": {
                        "description": "Defines the name of storage",
                        "type": "string"
                      },
                      "store_key": {
                        "description": "Defines key with which objects will store. Default $request_id",
                        "type": "string"
                      },
                      "default_success_status": {
                        "description": "Defines default success status. Default 200",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "default_empty_queue_status": {
                        "description": "Defines default status in case empty queue. Default 403",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "default_already_exists_status": {
                        "description": "Defines default status in case when object already exists with this key. Default 403",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "default_message_unknown_status": {
                        "description": "Defines default status when in case object with this key doesn't exists. Default 404",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "default_error_status": {
                        "description": "Defines default status for internal errors. Default 500",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "success_result_pattern": {
                        "description": "Defines pattern for success result response",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "success_result_pattern_file": {
                        "description": "Defines pattern file for success result response",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "empty_queue_pattern": {
                        "description": "Defines pattern for empty queue response",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "empty_queue_pattern_file": {
                        "description": "Defines pattern file for empty queue response",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "default_error_pattern": {
                        "description": "Defines pattern for internal error response",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "default_error_pattern_file": {
                        "description": "Defines pattern file for internal error response",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "already_exists_pattern": {
                        "description": "Defines pattern for already exists object response",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "already_exists_pattern_file": {
                        "description": "Defines pattern file for already exists object response",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "message_unknown_pattern": {
                        "description": "Defines pattern for unknown object response",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "message_unknown_pattern_file": {
                        "description": "Defines pattern file for unknown object response",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "send_error": {
                        "description": "Defines sending error on non content phase or not. Default true",
                        "type": "boolean"
                      },
                      "response_content_type": {
                        "description": "Defines response content-type. Default \"application/json\"",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "configuration_file": {
                        "description": "Defines path to configuration file with definitions of existing actions",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      }
                    },
                    "required": [
                      "store_name",
                      "configuration_file"
                    ]
                  },
                  "log_level": {
                    "type": [
                      "number",
                      "string"
                    ],
                    "enum": [
                      "debug",
                      "info",
                      "notice",
                      "warn",
                      "error",
                      "crit",
                      "alert",
                      "off"
                    ]
                  },
                  "group_access_log": {
                    "description": "Specifies whether group or not the access log by status codes (2xx, 3xx, 4xx, 5xx, 404, 413, 429, 499, 500). Default is false.",
                    "type": "boolean"
                  },
                  "log_format": {
                    "description": "Specifies which format to use.",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "client_header_timeout": {
                    "description": "Sets the timeout for reading headers from the client. The default value is \"60s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "client_body_timeout": {
                    "description": "Sets the timeout for reading body from the client. The default value is \"60s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "keepalive_timeout": {
                    "description": "Limits the maximum time during which requests can be processed through one keep-alive connection. After this time is reached, the connection is closed following the subsequent request processing. By default -  timeout 1h",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "keepalive_time": {
                    "description": "Defines a timeout duaring which a connection will stay open. The default value is \"1h\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "keepalive_requests": {
                    "description": "Sets the maximum number of the request duaring keep-alive timeiut. The default value is \"10000\".",
                    "type": "integer"
                  },
                  "send_timeout_to_client": {
                    "description": "Sets the timeout for sending answer to the client. The default value is \"60s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "session": {
                    "description": "Enables http session support. The default value is \"off\".",
                    "type": "boolean"
                  },
                  "session_timeout": {
                    "description": "Value in seconds. Default value is 60.",
                    "type": "integer"
                  },
                  "session_cookie_name": {
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "session_redirect_timeout": {
                    "description": "Value in seconds. Must not be larger than session timeout. Default value is 5.",
                    "type": "integer"
                  },
                  "session_show": {
                    "type": "boolean"
                  },
                  "session_cache": {
                    "description": "specifies cache size for ssl session. The default value evaluates automatically.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "off",
                          "none",
                          "builtin",
                          "shared"
                        ]
                      },
                      "name": {
                        "type": "string"
                      },
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "next_upstream": {
                    "description": "specifies proxy_next_upstream settings. The default value evaluates automatically.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "codes": {
                        "type": "string"
                      },
                      "codes_seq": {
                        "type": "array",
                        "items": {
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "error",
                            "timeout",
                            "invalid_header",
                            "http_500",
                            "http_502",
                            "http_503",
                            "http_504",
                            "http_403",
                            "http_404",
                            "http_429",
                            "non_idempotent",
                            "off"
                          ]
                        }
                      },
                      "timeout": {
                        "type": "integer"
                      },
                      "tries": {
                        "type": "integer"
                      }
                    },
                    "required": [
                      "timeout",
                      "tries"
                    ],
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "codes_seq"
                          ],
                          "properties": {
                            "codes_seq": {}
                          }
                        },
                        "then": {
                          "not": {
                            "required": [
                              "codes"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "codes"
                          ],
                          "properties": {
                            "codes": {}
                          }
                        },
                        "then": {
                          "not": {
                            "required": [
                              "codes_seq"
                            ]
                          }
                        }
                      }
                    ]
                  },
                  "file_upload_limit": {
                    "description": "Enables file upload limitation by content type header. By default limitation is enabled.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "pipelined_requests": {
                    "description": "Enables/disable pipelined requests, by default - on",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "upload_size_limit": {
                    "description": "Specifies maximum size of the request body. Parameter \"drop\" specifies whether drop connection or not.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "drop": {
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "enable": {
                        "description": "Enables limit request body. Default \"true\"",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "size"
                    ]
                  },
                  "download_size_limit": {
                    "description": "Specifies maximum size of the response body. The connection will be dropped when size will be exceeded.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "drop": {
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "status": {
                        "description": "Specifies the status code when response size was exceeded. By default is 413.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(4|5)[0-9]{2}$"
                      }
                    },
                    "required": [
                      "size"
                    ]
                  },
                  "http_version": {
                    "description": "Specifies HTTP version of the upstream service. The default value is \"1.0\". Warning - version 2.0 do not allow some functions",
                    "type": [
                      "number",
                      "string"
                    ],
                    "enum": [
                      1.0,
                      1.1,
                      2.0
                    ]
                  },
                  "grpc_error_processing": {
                    "description": "Specifies whether service is a grpc proxy or not, and enables grpc error processing.",
                    "type": "boolean"
                  },
                  "cookie_domain": {
                    "description": "Whether rewrite the \"domain\" cookie in the answer from the upstream. The default value is \"off\".",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "from": {
                        "type": "string"
                      },
                      "to": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "from",
                      "to"
                    ]
                  },
                  "cookie_flags": {
                    "type": "array",
                    "items": {
                      "description": "Stes falgs for the cookie or remove it. Also can be specifide several derectives on same config level. The default value is \"off\".",
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "cookie": {
                          "type": "string"
                        },
                        "flag": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "cookie",
                        "flag"
                      ]
                    }
                  },
                  "cookie_path": {
                    "type": "array",
                    "items": {
                      "description": "Whether rewrite the \"path\" cookie in the answer from the upstream. The default value is \"off\".",
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "from": {
                          "type": "string"
                        },
                        "to": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "from",
                        "to"
                      ]
                    }
                  },
                  "proxy_connect_timeout": {
                    "description": "Specifies the connect timeout with the upstream service. The default vaue is \"60s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "proxy_read_timeout": {
                    "description": "Specifies read timeout from the upstream. The default vaue is \"60s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "proxy_send_timeout": {
                    "description": "Specifies send timeout from the upstream. The default vaue is \"60s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "proxy_set_body": {
                    "description": "Specifies body to set when send request to backend",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "proxy_headers_hash_bucket_size": {
                    "description": "Bucket size for hashtables,  using in proxy_set_headers and proxy_hide_headers directive. The default value is 64",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^[0-9]+$"
                  },
                  "proxy_headers_hash_max_size": {
                    "description": "Maximum size of hashtables, using in proxy_set_headers and proxy_hide_headers directive. The default value is 512",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^[0-9]+$"
                  },
                  "http2_only": {
                    "description": "Allow to pass only http2 protocol connection. Default - off",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "kafka_logger_id": {
                    "description": "Specifies service id to handle event.",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "opentelemetry": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "tracing": {
                        "description": "Defines parameters of Opentelemetry Tracing",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "mode": {
                            "description": "Enable or disable tracing at this level",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "enabled": {
                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "on",
                                  "off",
                                  "var_based"
                                ]
                              },
                              "var": {
                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            },
                            "allOf": [
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "enabled"
                                  ],
                                  "properties": {
                                    "enabled": {
                                      "const": "var_based"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "var"
                                  ]
                                }
                              }
                            ]
                          },
                          "trace_context": {
                            "description": "Specifies how to propagate traceparent/tracestate headers.   Default - ignore",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "extract",
                              "inject",
                              "propagate",
                              "ignore"
                            ]
                          },
                          "span_name": {
                            "description": "Defines the name of span. By default - name of location, can be contain variables",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "span_attr": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "description": "name of attribute",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "value": {
                                  "description": "value of attribute, can contain variables",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            ""
                          ],
                          "properties": {
                            "": {
                              "properties": {
                                "system": {
                                  "type": "object",
                                  "required": [
                                    "system"
                                  ],
                                  "properties": {
                                    "system": {},
                                    "optional": {
                                      "type": "object",
                                      "required": [
                                        "opentelemetry"
                                      ],
                                      "properties": {
                                        "opentelemetry": {
                                          "pattern": ".+"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "tracing"
                            ]
                          }
                        }
                      }
                    ]
                  },
                  "security_headers": {
                    "description": "Specifies security response headers.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "referrer_policy": {
                        "description": "Specifies which referrer information, sent in the Referer header, should be included with requests made.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "no-referrer",
                          "no-referrer-when-downgrade",
                          "origin",
                          "origin-when-cross-origin",
                          "same-origin",
                          "strict-origin",
                          "strict-origin-when-cross-origin",
                          "unsafe-url"
                        ]
                      },
                      "x_frame_options": {
                        "description": "Specifies whether or not a browser should be allowed to render a page in a frame",
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "DENY",
                          "SAMEORIGIN"
                        ]
                      },
                      "xss_protection": {
                        "description": "Use headers for additional xss protection.",
                        "type": "boolean"
                      },
                      "forced_ssl": {
                        "description": "Forces SSL connetion.",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "max_age": {
                            "description": "Specifies time, in seconds, that the browser should remember that a site is only to be accessed using HTTPS.",
                            "type": "integer"
                          }
                        },
                        "required": [
                          "max_age"
                        ]
                      },
                      "content_security": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "block_mixed_content": {
                            "description": "only SSL content allowed.",
                            "type": "boolean"
                          },
                          "connect_src": {
                            "description": "Restricts the URLs which can be loaded using script interfaces.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "font_src": {
                            "description": "Specifies valid sources for fonts loaded using @font-face.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "script_src": {
                            "description": "Specifies valid sources for JavaScript.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "worker_src": {
                            "description": "Specifies valid sources for Worker, SharedWorker, or ServiceWorker scripts.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "style_src": {
                            "description": "Specifies valid sources for stylesheets.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "frame_ancestors": {
                            "description": "Specifies valid parents that may embed a page using <frame>, <iframe>, <object>, <embed>, or <applet>.",
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        }
                      }
                    }
                  },
                  "exclude_req_stat": {
                    "description": "Excludes location request stats monitoring",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "exclude_resp_stat": {
                    "description": "Excludes location resp stats monitoring",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "limit_req": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enable limit req module",
                        "type": "boolean"
                      },
                      "rate": {
                        "description": "The count of requests which will be handled per time interval.",
                        "type": "number"
                      },
                      "rate_interval": {
                        "description": "Time interval for request rate measuring. Specify 's' for second and 'm' for minute. By default is 's'. Hint - if you need '0.5r/s', you can specify '30r/m'.",
                        "type": "string",
                        "enum": [
                          "s",
                          "m"
                        ]
                      },
                      "size": {
                        "description": "Shared memory zone used to store the state of each IP address and how often it has accessed a request limited URL. The default value is \"10m\"",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})$"
                      },
                      "burst": {
                        "description": "Defines how many requests a client can make in excess of the rate. The default value is \"0\"",
                        "type": "integer"
                      },
                      "cpu_limit": {
                        "description": "Defines maximum CPU load percentage. After exceeding limit, all incoming connections will be declined.",
                        "type": "integer"
                      },
                      "mem_limit": {
                        "description": "Defines maximum memory load percentage. After exceeding limit, all incoming connections will be declined.",
                        "type": "integer"
                      },
                      "target": {
                        "description": "Specifies a target for check. You can use predefined values 'src_ip' and 'service' or any nginx variables using prefix '$' (e.g. $server_port).",
                        "type": "string",
                        "pattern": "^((src_ip)|(service)|(request_method)|(\\$[a-z_]+))$"
                      },
                      "policy_type": {
                        "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                        "type": "string",
                        "enum": [
                          "allow",
                          "forbid"
                        ]
                      },
                      "exclude_ip": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "nodelay": {
                        "description": "default false",
                        "type": "boolean"
                      },
                      "forbid_action": {
                        "description": "Specifies location on which will be redirected",
                        "type": "string"
                      },
                      "status_code": {
                        "description": "Defines the response code if the limit is exceeded. Default value is \"413\".",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "dry_run": {
                        "description": "Enables dry run mode. Default is off.",
                        "type": "boolean"
                      },
                      "condition": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "condition_var": {
                            "type": "string",
                            "pattern": "^\\$.+$"
                          },
                          "condition_value": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ifall",
                              "ifany",
                              "if"
                            ]
                          },
                          "expression": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "variable": {
                                  "type": "string",
                                  "pattern": "^\\$.+$"
                                },
                                "operation": {
                                  "type": "string",
                                  "enum": [
                                    ">=",
                                    "=",
                                    ">",
                                    "<",
                                    "<=",
                                    "!=",
                                    "~",
                                    "~*",
                                    "!~",
                                    "!~*",
                                    "-f",
                                    "!-f",
                                    "-d",
                                    "!-d",
                                    "-e",
                                    "!-e",
                                    "-x",
                                    "!-x"
                                  ]
                                },
                                "value": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "variable"
                              ]
                            }
                          }
                        },
                        "required": [
                          "condition_var",
                          "condition_value",
                          "type"
                        ]
                      }
                    },
                    "required": [
                      "enabled",
                      "target"
                    ]
                  },
                  "limit_requests": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enable limit req module",
                        "type": "boolean"
                      },
                      "status_code": {
                        "description": "Defines the response code if the limit is exceeded. Default value is \"413\".",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "dry_run": {
                        "description": "Enables dry run mode. Default is off.",
                        "type": "boolean"
                      },
                      "limit_req": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "rate": {
                              "description": "The count of requests which will be handled per time interval.",
                              "type": "number"
                            },
                            "rate_interval": {
                              "description": "Time interval for request rate measuring. Specify 's' for second and 'm' for minute. By default is 's'. Hint - if you need '0.5r/s', you can specify '30r/m'.",
                              "type": "string",
                              "enum": [
                                "s",
                                "m"
                              ]
                            },
                            "size": {
                              "description": "Shared memory zone used to store the state of each IP address and how often it has accessed a request limited URL. The default value is \"10m\"",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^([0-9]+[kKmM]{1})$"
                            },
                            "burst": {
                              "description": "Defines how many requests a client can make in excess of the rate. The default value is \"0\"",
                              "type": "integer"
                            },
                            "cpu_limit": {
                              "description": "Defines maximum CPU load percentage. After exceeding limit, all incoming connections will be declined.",
                              "type": "integer"
                            },
                            "mem_limit": {
                              "description": "Defines maximum memory load percentage. After exceeding limit, all incoming connections will be declined.",
                              "type": "integer"
                            },
                            "target": {
                              "description": "Specifies a target for check. You can use predefined values 'src_ip' and 'service' or any nginx variables using prefix '$' (e.g. $server_port).",
                              "type": "string",
                              "pattern": "^((src_ip)|(service)|(request_method)|(\\$[a-z_]+))$"
                            },
                            "policy_type": {
                              "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                              "type": "string",
                              "enum": [
                                "allow",
                                "forbid"
                              ]
                            },
                            "exclude_ip": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                              }
                            },
                            "nodelay": {
                              "description": "default false",
                              "type": "boolean"
                            },
                            "forbid_action": {
                              "description": "Specifies location on which will be redirected",
                              "type": "string"
                            },
                            "condition": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "condition_var": {
                                  "type": "string",
                                  "pattern": "^\\$.+$"
                                },
                                "condition_value": {
                                  "type": "string"
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "ifall",
                                    "ifany",
                                    "if"
                                  ]
                                },
                                "expression": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "variable": {
                                        "type": "string",
                                        "pattern": "^\\$.+$"
                                      },
                                      "operation": {
                                        "type": "string",
                                        "enum": [
                                          ">=",
                                          "=",
                                          ">",
                                          "<",
                                          "<=",
                                          "!=",
                                          "~",
                                          "~*",
                                          "!~",
                                          "!~*",
                                          "-f",
                                          "!-f",
                                          "-d",
                                          "!-d",
                                          "-e",
                                          "!-e",
                                          "-x",
                                          "!-x"
                                        ]
                                      },
                                      "value": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "variable"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "condition_var",
                                "condition_value",
                                "type"
                              ]
                            }
                          },
                          "required": [
                            "target"
                          ]
                        }
                      }
                    },
                    "required": [
                      "enabled",
                      "limit_req"
                    ]
                  },
                  "robot_mitigation": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enables defense against HTTP robot attacks.",
                        "type": "boolean"
                      },
                      "blacklist": {
                        "description": "Means if a client has failed for N times, this client will be added into blacklist. Default 5",
                        "type": "integer"
                      },
                      "mode": {
                        "description": "Robot Mitigation will return a user-defined js code or predefined flash file to the client. Default js",
                        "type": "string",
                        "enum": [
                          "js",
                          "swf"
                        ]
                      },
                      "timeout": {
                        "description": "Sets the time for the next challenge to be initiated, in seconds. Default 60",
                        "type": "integer"
                      },
                      "ajax": {
                        "description": "This directive sets if challenge for ajax requests based on XMLRequest header. Default off",
                        "type": "boolean"
                      },
                      "policy_type": {
                        "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                        "type": "string",
                        "enum": [
                          "allow",
                          "forbid"
                        ]
                      },
                      "exclude_ip": {
                        "description": "Specifies the IP addresses, which will be excluded from whitelist",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "ua_whitelist": {
                        "description": "This directives specifies the User-Agent whitelist.",
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "ip_behavior": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "sample_base": {
                        "description": "Specifies the number of the request for a valid sample",
                        "type": "number"
                      },
                      "size": {
                        "description": "Size means how much memory will use by zone. The default value is \"10m\"",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})$"
                      },
                      "sample_cycle": {
                        "description": "Specifies the cyclog of the sampling, unit could be s (for second) and m (for minute).",
                        "type": "string",
                        "pattern": "^([0-9]+[mMsS]{1})$"
                      },
                      "sensitive": {
                        "description": "Specifies sensitive locations. If a location is defined as a sensitive location, all the resources under this location will be treated as sensitive. Default false",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "sample_base",
                      "size",
                      "sample_cycle"
                    ]
                  },
                  "cookie_poisoning": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enables monitoring the Set-Cookies headers and the cookie values in the response from server side.",
                        "type": "boolean"
                      },
                      "action": {
                        "description": "This directive specifies the action when cookie values are detected changed.  Default block",
                        "type": "string",
                        "pattern": "^block|pass|remove|blacklist,[0-9]+$"
                      },
                      "log": {
                        "type": "boolean"
                      },
                      "policy_type": {
                        "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                        "type": "string",
                        "enum": [
                          "allow",
                          "forbid"
                        ]
                      },
                      "exclude_ip": {
                        "description": "Specifies the IP addresses, which will be excluded from whitelist",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "include_ip": {
                        "description": "Specifies the IP addresses, which will be included to whitelist",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "ua_whitelist": {
                        "description": "This directives specifies the User-Agent whitelist.",
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "gzip": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enables response compression by gzip method.",
                        "type": "boolean"
                      },
                      "optional": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "level": {
                            "description": "Sets the compression level. The default value is \"5\".",
                            "type": "integer",
                            "enum": [
                              1,
                              2,
                              3,
                              4,
                              5,
                              6,
                              7,
                              8,
                              9
                            ]
                          },
                          "types": {
                            "description": "Sets the mime-types for which compression is applied. The default value is \"text/html\".",
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "buffer_count": {
                            "description": "Sets the count of buffers in wich the response will be placed. The default value is \"32\".",
                            "type": "integer"
                          },
                          "buffer_size": {
                            "description": "Sets the buffer size in wich the response will be placed. The default value is memory page size.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "exclude": {
                            "description": "Sets the list of the User-Agent specified by regular expressions for which compression will be disabled.",
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "min_length": {
                            "description": "Sets the minimum length of the response for which compression will be applied. The default value is \"20\".",
                            "type": "integer"
                          },
                          "http_version": {
                            "description": "Specifies the minimum version for the request necessary for the response compression. The default value is \"1.0\"",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              1.0,
                              1.1
                            ]
                          },
                          "proxied": {
                            "description": "Enables or disables gzipping of responses for proxied requests depending on the request and response.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              false,
                              "expired",
                              "no-cache",
                              "no-store",
                              "private",
                              "no_last_modified",
                              "no_etag",
                              "auth",
                              "any"
                            ]
                          },
                          "vary": {
                            "description": "Enables or disables inserting the 'Vary: Accept-Encoding' response header field if the directives gzip, gzip_static, or gunzip are active.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              true,
                              false
                            ]
                          },
                          "static": {
                            "description": "Enables or disables checking the existence of precompressed files. With the \"always\" value, gzipped file is used in all cases, without checking if the client supports it. Default - off",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              true,
                              false,
                              "always"
                            ]
                          }
                        }
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "event_hook": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Allows to enable/disable EVH for service. Default value is \"True\".",
                        "type": "boolean"
                      },
                      "stage": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "name": {
                              "description": "Specifies the stage for log.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "client_request",
                                "client_response",
                                "upstream_request",
                                "upstream_response"
                              ]
                            },
                            "log_file": {
                              "description": "Specifies the log file name. Default is /sowalogs/<profile name>/services/service_http_proxy/service_http_proxy_<id>/<stage>/$request_id.log",
                              "type": "string"
                            },
                            "pattern_file": {
                              "description": "Specifies the pattern file.",
                              "type": "string"
                            },
                            "max_size": {
                              "description": "Specifies the threshold after exceeding which the event will bw written to temp file in directory specified by \"temp_path\". Default is not specified.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                            }
                          },
                          "required": [
                            "name"
                          ]
                        }
                      },
                      "logger_service": {
                        "description": "Specifies service type to handle event.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "logger_service_type": {
                        "description": "Specifies when loging making synchronous or asynchronous",
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "sync",
                          "async"
                        ]
                      },
                      "logger_id": {
                        "description": "Specifies service id to handle event.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "logger_read_timeout": {
                        "description": "Specifies logger read timeout. Default 1s",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                      },
                      "logger_send_timeout": {
                        "description": "Specifies logger send timeout. Default 1s",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                      },
                      "logger_connect_timeout": {
                        "description": "Specifies logger connect timeout. Default 1s",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                      },
                      "logger_client_body_timeout": {
                        "description": "Specifies logger client body timeout. Default 1s",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                      },
                      "logger_buffer_size": {
                        "description": "Specifies logger buffer size for writing to service timeout. Default 16k;",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "logger_max_memory": {
                        "description": "Specifies async logger max in-memory size for event. Default 2M, if limit exceeded event dumped to temp file;",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "log_in_file": {
                        "description": "Specifies log in to the file or not.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "temp_path": {
                        "description": "Specifies the path for saving temp data. Default is /sowarun/<profile name>/service_http_proxy/service_http_proxy_<id>",
                        "type": "string"
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "enabled"
                          ],
                          "properties": {
                            "enabled": {
                              "const": false
                            }
                          }
                        },
                        "then": {
                          "required": []
                        },
                        "else": {
                          "required": [
                            "stage"
                          ]
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "logger_service"
                          ],
                          "properties": {
                            "logger_service": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "logger_read_timeout"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "logger_service"
                          ],
                          "properties": {
                            "logger_service": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "logger_send_timeout"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "logger_service"
                          ],
                          "properties": {
                            "logger_service": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "logger_connect_timeout"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "logger_service"
                          ],
                          "properties": {
                            "logger_service": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "logger_client_body_timeout"
                            ]
                          }
                        }
                      }
                    ]
                  },
                  "limit_conn": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enable limit conn module",
                        "type": "boolean"
                      },
                      "count": {
                        "description": "The count of connections which will be handled.",
                        "type": "number"
                      },
                      "size": {
                        "description": "Shared memory zone used to store the state of each target and how often it has create connection. The default value is \"10m\"",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})$"
                      },
                      "target": {
                        "description": "Specifies a target for check.",
                        "type": "string"
                      },
                      "status_code": {
                        "description": "Defines the response code if the limit is exceeded. Default value is \"503\".",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "dry_run": {
                        "description": "Enables dry run mode. Default is off.",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "enabled",
                      "count",
                      "target"
                    ]
                  },
                  "client_body_buffer_size": {
                    "description": "Sets buffer size for reading client request body. Default By default, buffer size is equal to two memory pages. For x86 it is usually 8K.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "client_body_in_file_only": {
                    "description": "Determines whether nginx should save the entire client request body into a file. By default is off.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off",
                      "clean"
                    ]
                  },
                  "client_body_in_single_buffer": {
                    "description": "Determines whether nginx should save the entire client request body in a single buffer. By default is off.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "client_header_buffer_size": {
                    "description": "Sets buffer size for reading client request header. By default is 1k.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "large_client_header_buffers": {
                    "description": "Sets the maximum number and size of buffers used for reading large client request header. By default the number is 4, the size is 4k.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "number": {
                        "type": "integer"
                      },
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      }
                    },
                    "required": [
                      "number",
                      "size"
                    ]
                  },
                  "output_buffers": {
                    "description": "Sets the number and size of the buffers used for reading a response from a disk. By default the number is 2, the size is 32k.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "number": {
                        "type": "integer"
                      },
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      }
                    },
                    "required": [
                      "number",
                      "size"
                    ]
                  },
                  "subrequest_output_buffer_size": {
                    "description": "Sets the size of the buffer used for storing the response body of a subrequest. By default, the buffer size is equal to one memory page.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_buffer_size": {
                    "description": "Sets the size of the buffer used for reading the first part of the response received from the proxied server. By default, the buffer size is equal to one memory page.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_buffering": {
                    "description": "Enables or disables buffering of responses from the proxied server. By default is on.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "proxy_buffers": {
                    "description": "Sets the number and size of the buffers used for reading a response from the proxied server, for a single connection. By default the number is 8, the size is equal to one memory page.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "number": {
                        "type": "integer"
                      },
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      }
                    },
                    "required": [
                      "number",
                      "size"
                    ]
                  },
                  "proxy_busy_buffers_size": {
                    "description": "When buffering of responses from the proxied server is enabled, limits the total size of buffers that can be busy sending a response to the client while the response is not yet fully read. By default, size is limited by the size of two buffers set by the proxy_buffer_size and proxy_buffers directives.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_request_buffering": {
                    "description": "Enables or disables buffering of a client request body. By default is on.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "proxy_max_temp_file_size": {
                    "description": "When buffering of responses from the proxied server is enabled, and the whole response does not fit into the buffers set by the proxy_buffer_size and proxy_buffers directives, a part of the response can be saved to a temporary file. This directive sets the maximum size of the temporary file. The size of data written to the temporary file at a time is set by the proxy_temp_file_write_size directive. The zero value disables buffering of responses to temporary files.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_temp_file_write_size": {
                    "description": "Limits the size of data written to a temporary file at a time, when buffering of responses from the proxied server to temporary files is enabled. By default, size is limited by two buffers set by the proxy_buffer_size and proxy_buffers directives. The maximum size of a temporary file is set by the proxy_max_temp_file_size directive.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_max_downstream_presend_inmemory_size": {
                    "description": "When used body filters such Modsecurity or Response size body filter, we always read all upstream data before sending client. Setting this parameter adjust maximum data in memory size, if 0 specified limit is not setted",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "async_io": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "directio_threshold": {
                        "description": "Enables the use of the O_DIRECT flag (FreeBSD, Linux), the F_NOCACHE flag (macOS), or the directio() function (Solaris), when reading files that are larger than or equal to the specified size.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "thread_pool_id": {
                        "description": "Defines thread pool to use by id. If the thread_pool_id is omitted, the pool with the name default is used.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "write": {
                        "description": "Specifies whether async_io is used for writing files.",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "directio_threshold"
                    ]
                  },
                  "request_gunzip": {
                    "description": "Gunzip request body if request header 'Content-Encoding: gzip' is present. Default 'off'.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "request_gunzip_buffer": {
                    "description": "Specifies buffer size for gunzip operation. Default is memory page size.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "response_gunzip": {
                    "description": "Gunzip response body. Default 'false'.",
                    "type": "boolean"
                  },
                  "response_gunzip_buffers": {
                    "description": "Sets the number and size of the buffers used for unzipping a response. 4k/32 or 8k/16 by default.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "number": {
                        "type": "integer"
                      },
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      }
                    },
                    "required": [
                      "number",
                      "size"
                    ]
                  },
                  "log_masking_rules": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "log_type": {
                          "description": "Which log type will be masked",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "event",
                            "security",
                            "all"
                          ]
                        },
                        "object": {
                          "description": "Specifies in which part of data masking will be maked",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "request_header",
                            "response_header",
                            "request_body",
                            "response_body",
                            "request_cookie",
                            "response_cookie"
                          ]
                        },
                        "cookie": {
                          "description": "Individual cookie name wich will be masked",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "header": {
                          "description": "Header name which will be masked",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "mask_symbol": {
                          "description": "Specifies which symbol will be used on replacement",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "."
                        },
                        "expression": {
                          "description": "Search pattern",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "replace_group": {
                          "description": "Specifies group number in expression which will be used for replacement for request or response body. If 0 - replacing full match string",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^[0-9]*$"
                        },
                        "replace_all": {
                          "description": "Replace all occurences or first. By default only first occurence replacing",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "exclusion": {
                          "description": "Define exlcusion from masking in all object with this type, default false",
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "object"
                      ]
                    }
                  },
                  "http2": {
                    "description": "Define http2 specific parameters",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "body_preread_size": {
                        "description": "Sets the size of the buffer per each request in which the request body may be saved before it is started to be processed. By default - 64k",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "chunk_size": {
                        "description": "Sets the maximum size of chunks into which the response body is sliced. A too low value results in higher overhead. A too high value impairs prioritization due to HOL blocking. By default - 8k",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "max_concurrent_pushes": {
                        "description": "Limits the maximum number of concurrent push requests in a connection. By default - 10",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+)$"
                      },
                      "max_concurrent_streams": {
                        "description": "Sets the maximum number of concurrent HTTP/2 streams in a connection. By default - 128",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+)$"
                      },
                      "push_preload": {
                        "description": "Enables automatic conversion of preload links specified in the “Link” response header fields into push requests. By default - off",
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "pushes": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "push_parent": {
                            "description": "Cancels the effect of the push directives inherited from the previous configuration level. By default off",
                            "type": "string",
                            "enum": [
                              "on",
                              "off"
                            ]
                          },
                          "push_list": {
                            "description": "List of Pre-emptively sends (pushes) a request to the specified uri along with the response to the original request. Only relative URIs with absolute path will be processed",
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    }
                  },
                  "log_type": {
                    "description": "Specifies logging mode for sowa-nginx. Default mode - file.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "kafka": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "group": {
                              "description": "Specifies which group of logs will use current settings.",
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "system",
                                  "error",
                                  "access"
                                ]
                              }
                            },
                            "id": {
                              "description": "Specifies client.id.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "broker": {
                              "description": "Initial list of brokers as a host:port separated by comma.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "topic": {
                              "description": "Specifies topic name.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^\\S*$"
                            },
                            "protocol": {
                              "description": "Specifies connection protocol. Plaintext by default.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "plaintext",
                                "ssl"
                              ]
                            },
                            "certificate": {
                              "description": "Specifies ssl.certificate.location",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "ca": {
                              "description": "Specifies ssl.ca.location.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "key": {
                              "description": "Specifies ssl.key.location.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "ciphers": {
                              "description": "Specifies ssl.cipher.suites. Same as default ssl ciphers.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "compression_codec": {
                              "description": "Compression codec to use for compressing message sets.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "none",
                                "gzip",
                                "snappy",
                                "lz4",
                                "zstd"
                              ]
                            },
                            "compression_level": {
                              "description": "Compression level parameter for algorithm selected by configuration property compression.codec. Higher values will result in better compression at the cost of more CPU usage.",
                              "type": "integer",
                              "minimum": -1,
                              "maximum": 12
                            },
                            "log_level": {
                              "description": "Logging level (syslog(3) levels).",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "debug": {
                              "description": "A comma-separated list of debug contexts to enable.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "max_messages": {
                              "description": "Maximum number of messages batched in one MessageSet.",
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 1000000
                            },
                            "pattern_file": {
                              "description": "Template file with custom log structure.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "escape": {
                              "description": "Defines if you need to escape variables used in pattern file.",
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "broker",
                            "topic"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "certificate"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "ca"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "key"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ciphers"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      },
                      "syslog": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "group": {
                              "description": "Specifies which group of logs will use current settings.",
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "system",
                                  "error",
                                  "access"
                                ]
                              }
                            },
                            "log_host": {
                              "description": "Specifies host for remote logging to syslog.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "log_port": {
                              "description": "Specifies port for remote logging to syslog. Default port - 514.",
                              "type": [
                                "number",
                                "string"
                              ]
                            }
                          }
                        }
                      },
                      "file": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "group": {
                              "description": "Specifies which group of logs will use current settings.",
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "system",
                                  "error",
                                  "access"
                                ]
                              }
                            }
                          }
                        }
                      },
                      "security": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Enables logging security security events (XSD, JSON, WSDL and other validators). False by default.",
                            "type": "boolean"
                          },
                          "threads_count": {
                            "description": "Specifies count of threads for thread pool, used for sending security events to syslog. Default is 16",
                            "type": "integer"
                          },
                          "hostname": {
                            "description": "Specifies hostname to dispaly in syslog event. Default is current hostname.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "appname": {
                            "description": "Specifies application name to dispaly in syslog event. Default is \"sowa-security\".",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "facility": {
                            "description": "Specifies facility for syslog event. Default is USER.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "KERN",
                              "USER",
                              "MAIL",
                              "DAEMON",
                              "AUTH",
                              "SYSLOG",
                              "LPR",
                              "NEWS",
                              "UUCP",
                              "CRON",
                              "AUTHPRIV",
                              "FTP",
                              "NTP",
                              "AUDIT",
                              "ALERT",
                              "CLOCK",
                              "LOCAL0",
                              "LOCAL1",
                              "LOCAL2",
                              "LOCAL3",
                              "LOCAL4",
                              "LOCAL5",
                              "LOCAL6",
                              "LOCAL7"
                            ]
                          },
                          "severity": {
                            "description": "Specifies severity for syslog event. Default is INFORMATIONAL.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "EMERGENCY",
                              "ALERT",
                              "CRITICAL",
                              "ERROR",
                              "WARNING",
                              "NOTICE",
                              "INFORMATIONAL",
                              "DEBUG"
                            ]
                          },
                          "target_host": {
                            "description": "Specifies host to send syslog event. Default is \"127.0.0.1\"",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "target_port": {
                            "description": "Specifies port to send syslog event. Default is 514.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 65535
                          },
                          "protocol": {
                            "description": "Specifies used protocol to send syslog event. Default is UDP.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "UDP",
                              "TCP"
                            ]
                          },
                          "msg_format": {
                            "description": "Specifies message format to send syslog event. Default is RFC_3164",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "RFC_3164",
                              "RFC_5424",
                              "RFC_5425"
                            ]
                          }
                        }
                      }
                    }
                  },
                  "cache": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "zone": {
                        "description": "Задаёт зону разделяемой памяти, используемой для кэширования. Одна и та же зона может использоваться в нескольких местах. В значении параметра можно использовать переменные (1.7.9). Параметр off запрещает кэширование, унаследованное с предыдущего уровня конфигурации.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "background_update": {
                        "description": "Позволяет запустить фоновый подзапрос для обновления просроченного элемента кэша, в то время как клиенту возвращается устаревший закэшированный ответ. Использование устаревшего закэшированного ответа в момент его обновления должно быть разрешено.",
                        "type": "boolean"
                      },
                      "bypass": {
                        "description": "Задаёт условия, при которых ответ не будет браться из кэша. Если значение хотя бы одного из строковых параметров непустое и не равно “0”, то ответ не берётся из кэша: $cookie_nocache $arg_nocache$arg_comment; $http_pragma    $http_authorization;\n",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "convert_head": {
                        "description": "Разрешает или запрещает преобразование метода “HEAD” в “GET” для кэширования. Если преобразование выключено, то необходимо, чтобы ключ кэширования включал в себя $request_method. Включено по умолчанию.",
                        "type": "boolean"
                      },
                      "key": {
                        "description": "Задаёт ключ для кэширования, например, \"$host$request_uri $cookie_user\". \"$scheme$proxy_host$request_uri\" по умолчанию.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "lock": {
                        "description": "Если включено, одновременно только одному запросу будет позволено заполнить новый элемент кэша, идентифицируемый согласно директиве key, передав запрос на проксируемый сервер. Остальные запросы этого же элемента будут либо ожидать появления ответа в кэше, либо освобождения блокировки этого элемента, в течение времени, заданного директивой lock_timeout. Выключено по умолчанию.",
                        "type": "boolean"
                      },
                      "lock_age": {
                        "description": "Задаёт таймаут для cache_lock. По истечении указанного времени запрос будет передан на проксируемый сервер, однако ответ не будет закэширован. По умолчанию 5 секунд.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[mMsS]{1})$"
                      },
                      "max_range_offset": {
                        "description": "Задаёт смещение в байтах для запросов с указанием диапазона запрашиваемых байт (byte-range requests). Если диапазон находится за указанным смещением, range-запрос будет передан на проксируемый сервер и ответ не будет закэширован. По умолчанию не используется.",
                        "type": "integer"
                      },
                      "methods": {
                        "description": "Если метод запроса клиента указан в этой директиве, то ответ будет закэширован. Методы “GET” и “HEAD” всегда добавляются в список, но тем не менее рекомендуется перечислять их явно.",
                        "type": "array",
                        "items": {
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "get",
                            "head",
                            "post"
                          ]
                        }
                      },
                      "min_uses": {
                        "description": "Задаёт число запросов, после которого ответ будет закэширован. По умолчанию - 1.",
                        "type": "integer"
                      },
                      "purge": {
                        "description": "Задаёт условия, при которых запрос будет считаться запросом на очистку кэша. Если значение хотя бы одного из строковых параметров непустое и не равно “0”, то запись в кэше с соответствующим ключом кэширования удаляется. В результате успешной операции возвращается ответ с кодом 204 (No Content). Если ключ кэширования запроса на очистку заканчивается звёздочкой (“*”), то все записи в кэше, соответствующие этой маске, будут удалены из кэша. Тем не менее, эти записи будут оставаться на диске или до момента удаления из-за отсутствия обращения к данным или до попытки клиента получить к ним доступ. \n",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "revalidate": {
                        "description": "Разрешает ревалидацию просроченных элементов кэша при помощи условных запросов с полями заголовка “If-Modified-Since” и “If-None-Match”. По умолчанию выключено",
                        "type": "boolean"
                      },
                      "use_stale": {
                        "description": "Определяет, в каких случаях можно использовать устаревший закэшированный ответ. Параметры директивы совпадают с параметрами директивы next_upstream.",
                        "type": "array",
                        "items": {
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "error",
                            "timeout",
                            "invalid_header",
                            "updating",
                            "http_500",
                            "http_502",
                            "http_503",
                            "http_504",
                            "http_403",
                            "http_404",
                            "http_429"
                          ]
                        }
                      },
                      "valid": {
                        "type": "array",
                        "items": {
                          "description": "Задаёт время кэширования для разных кодов ответа. Например, \"200 302 10m\";",
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      }
                    },
                    "required": [
                      "zone"
                    ]
                  },
                  "healthcheck_dynamic": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "initial_state_param_file": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "manual_state_var_refresh_interval": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                      },
                      "endpoints": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "url": {
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "response": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "code": {
                                  "description": "Specifies an array of error codes by which templates will be generated.",
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  }
                                },
                                "pattern_file": {
                                  "description": "Specifies pattern file which will be used as response body.",
                                  "type": "string",
                                  "enum": [
                                    "hc_pattern_default.json",
                                    "hc_pattern_profile_default.json",
                                    "hc_pattern_service_default.json"
                                  ]
                                },
                                "custom_pattern_file": {
                                  "description": "Specifies rule file which describes how to fill pattern file.",
                                  "type": "string",
                                  "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                },
                                "rules_file": {
                                  "description": "Specifies rule file which describes how to fill pattern file. Default - rules file from system resources.",
                                  "type": "string",
                                  "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                },
                                "content_type": {
                                  "description": "Specifies content type for response header. Default - none.",
                                  "type": "string"
                                }
                              }
                            },
                            "upstream_check_type": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "ANY_UPSTREAM_UP",
                                "ALL_UPSTREAM_UP",
                                "ANY_UPSTREAM_UP_OR_DRAIN",
                                "ALL_UPSTREAM_UP_OR_DRAIN"
                              ]
                            },
                            "service_id": {
                              "description": "Binded service id",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "upstream_filter": {
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "disable_access_log": {
                              "description": "Disable writing access log, by default -false",
                              "type": "boolean"
                            },
                            "disable_error_log": {
                              "description": "Disable writing error log, default false",
                              "type": "boolean"
                            },
                            "disable_gathering_stats": {
                              "description": "Disable gathering stat, default false",
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "url",
                            "response"
                          ]
                        }
                      }
                    }
                  },
                  "proxy_ssl": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "ssl_use": {
                        "description": "Enables SSL. Default is 'off'.",
                        "type": "boolean"
                      },
                      "sspi": {
                        "description": "Enables GOST TLS mode. Default id false.",
                        "type": "boolean"
                      },
                      "ssl_verify_local_crl_only": {
                        "description": "GOST mode. Specifies whether to check the certificate status locally (otherwise check online). Default is \"off\" (online check).",
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "ssl_verify_ignore_cn": {
                        "description": "GOST mode. Specifies whether to skip CN check. Default is \"off\" (do not skip).",
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "ssl_session_reuse": {
                        "description": "Determines whether SSL sessions can be reused when working with the proxied server. Default is 'on'.",
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "ssl_protocols": {
                        "description": "Enables the specified protocols for requests to a proxied HTTPS server. The default value is \"TLSv1 TLSv1.1 TLSv1.2\"",
                        "type": "array",
                        "uniqueItems": true,
                        "items": {
                          "type": "string",
                          "enum": [
                            "SSLv2",
                            "SSLv3",
                            "TLSv1",
                            "TLSv1.1",
                            "TLSv1.2",
                            "TLSv1.3"
                          ]
                        }
                      },
                      "ssl_ciphers": {
                        "description": "Specifies the enabled ciphers for requests to a proxied HTTPS server. The default value is \"HIGH:!aNULL:!MD5\".",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "prefix": {
                              "type": "string",
                              "enum": [
                                "!",
                                "+",
                                "-"
                              ]
                            },
                            "value": {
                              "type": "array",
                              "uniqueItems": true,
                              "items": {
                                "type": "string",
                                "enum": [
                                  "DEFAULT",
                                  "COMPLEMENTOFDEFAULT",
                                  "ALL",
                                  "COMPLEMENTOFALL",
                                  "HIGH",
                                  "MEDIUM",
                                  "LOW",
                                  "EXP",
                                  "EXPORT",
                                  "EXPORT40",
                                  "EXPORT56",
                                  "eNULL",
                                  "NULL",
                                  "aNULL",
                                  "kRSA",
                                  "RSA",
                                  "kDHr",
                                  "kDHd",
                                  "kDH",
                                  "kDHE",
                                  "kEDH",
                                  "DHE",
                                  "EDH",
                                  "ADH",
                                  "DH",
                                  "kECDHr",
                                  "kECDHe",
                                  "kECDH",
                                  "kECDHE",
                                  "kEECDH",
                                  "ECDHE",
                                  "EECDH",
                                  "AECDH",
                                  "ECDH",
                                  "aRSA",
                                  "aDSS",
                                  "DSS",
                                  "aDH",
                                  "aECDH",
                                  "aECDSA",
                                  "ECDSA",
                                  "kFZA",
                                  "aFZA",
                                  "eFZA",
                                  "FZA",
                                  "TLSv1.2",
                                  "TLSv1",
                                  "SSLv3",
                                  "SSLv2",
                                  "AES128",
                                  "AES256",
                                  "AES",
                                  "AESGCM",
                                  "CAMELLIA128",
                                  "CAMELLIA256",
                                  "CAMELLIA",
                                  "3DES",
                                  "DES",
                                  "RC4",
                                  "RC2",
                                  "IDEA",
                                  "SEED",
                                  "MD5",
                                  "SHA1",
                                  "SHA",
                                  "SHA256",
                                  "SHA384",
                                  "aGOST",
                                  "aGOST01",
                                  "aGOST94",
                                  "kGOST",
                                  "GOST94",
                                  "GOST89MAC",
                                  "PSK",
                                  "SUITEB128",
                                  "SUITEB128ONLY",
                                  "SUITEB192",
                                  "@STRENGTH",
                                  "NULL-SHA256"
                                ]
                              }
                            }
                          },
                          "required": [
                            "value"
                          ]
                        }
                      },
                      "ssl_ciphers_str": {
                        "description": "Specifies the string of enabled ciphers for requests to a proxied HTTPS server.",
                        "type": "string"
                      },
                      "ssl_name": {
                        "description": "Allows overriding the server name used to verify the certificate of the proxied HTTPS server and to be passed through SNI when establishing a connection with the proxied HTTPS server. There is no default value.",
                        "type": "string"
                      },
                      "ssl_name_upstream_host": {
                        "description": "Enables using upstream host to verify the certificate of the proxied HTTPS server when ssl_name isn't specified. Default \"on\".",
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "ssl_name_verify_off": {
                        "description": "Enable or disable ssl_name verifying",
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "ssl_server_name": {
                        "description": "Enables or disables passing of the server name through TLS Server Name Indication extension (SNI, RFC 6066) when establishing a connection with the proxied HTTPS server. Default is \"off\".",
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "ssl_verify": {
                        "description": "Enables or disables verification of the proxied HTTPS server certificate. Default is \"off\"",
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "ssl_verify_depth": {
                        "description": "Sets the verification depth in the proxied HTTPS server certificates chain. Default is \"1\".",
                        "type": "integer",
                        "minimum": 0
                      },
                      "ssl_trusted_certificate": {
                        "description": "Specifies a file with trusted CA certificates in the PEM format used to verify the certificate of the proxied HTTPS server. There is no default value.",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "ssl_dn_verify_trusted_path": {
                        "description": "Specifies the file with allowed regex of client certificate dn",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "ssl_fingerprint_verify_trusted_path": {
                        "description": "Specifies the file with allowed regex of client certificate dn",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "ssl_verify_error_code": {
                        "description": "Defines the response code if verification upstream certificate failed.",
                        "type": "integer"
                      },
                      "ssl_crl": {
                        "description": "Specifies a file with revoked certificates (CRL) in the PEM format used to verify the certificate of the proxied HTTPS server. There is no default value.",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "ssl_certificate": {
                        "description": "Specifies a file with the certificate in the PEM format used for authentication to a proxied HTTPS server. There is no default value.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "ssl_certificate_key": {
                        "description": "Specifies a file with the secret key in the PEM format used for authentication to a proxied HTTPS server. There is no default value.",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "ssl_password_file": {
                        "description": "Specifies a file with passphrases for secret keys where each passphrase is specified on a separate line. There is no default value.",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_use"
                          ],
                          "properties": {
                            "ssl_use": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ssl_session_reuse"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_use"
                          ],
                          "properties": {
                            "ssl_use": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ssl_protocols"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_use"
                          ],
                          "properties": {
                            "ssl_use": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ssl_server_name"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_use"
                          ],
                          "properties": {
                            "ssl_use": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ssl_verify"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_use"
                          ],
                          "properties": {
                            "ssl_use": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ssl_verify_depth"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_dn_verify_trusted_path"
                          ],
                          "properties": {
                            "ssl_dn_verify_trusted_path": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ssl_verify_error_code"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_fingerprint_verify_trusted_path"
                          ],
                          "properties": {
                            "ssl_fingerprint_verify_trusted_path": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ssl_verify_error_code"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_use"
                          ],
                          "properties": {
                            "ssl_use": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ssl_crl"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_use"
                          ],
                          "properties": {
                            "ssl_use": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ssl_certificate"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_use"
                          ],
                          "properties": {
                            "ssl_use": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ssl_certificate_key"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_use"
                          ],
                          "properties": {
                            "ssl_use": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ssl_password_file"
                            ]
                          }
                        }
                      }
                    ]
                  },
                  "set_variable": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "value": {
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "required": [
                        "name",
                        "value"
                      ]
                    }
                  },
                  "pass_request_body": {
                    "description": "Enable/disable passing request body to upstream. Enabled by default.",
                    "type": "boolean"
                  },
                  "redirect": {
                    "description": "Allows return a temporary redirect with the 302 code or a permanent redirect with the 301 code.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "from": {
                          "description": "Request URI regex",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "to": {
                          "description": "Replacement string",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "type": {
                          "description": "Type of redirect. Defaul \"redirect\".",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "redirect",
                            "permanent",
                            "redirect_temp",
                            "redirect_perm"
                          ]
                        },
                        "condition": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "var": {
                              "description": "Specifies a variable to analyze",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "operator": {
                              "description": "Specifies an operator to apply",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "=",
                                "!=",
                                "~",
                                "~*",
                                "!~",
                                "!~*"
                              ]
                            },
                            "val": {
                              "description": "Specifies a value or regex for the operator",
                              "type": [
                                "number",
                                "string"
                              ]
                            }
                          },
                          "required": [
                            "var",
                            "operator",
                            "val"
                          ]
                        }
                      },
                      "required": [
                        "from",
                        "to"
                      ]
                    }
                  }
                },
                "allOf": [
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "server_streaming"
                      ],
                      "properties": {
                        "server_streaming": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "download_size_limit"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "cookie_domain"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "cookie_flags"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "cookie_path"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_set_body"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_headers_hash_bucket_size"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_headers_hash_max_size"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "limit_requests"
                      ],
                      "properties": {
                        "limit_requests": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "limit_req"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "limit_req"
                      ],
                      "properties": {
                        "limit_req": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "limit_requests"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_buffering"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_buffers"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_busy_buffers_size"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_request_buffering"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_max_temp_file_size"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_temp_file_write_size"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_max_downstream_presend_inmemory_size"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        ".."
                      ],
                      "properties": {
                        "..": {
                          "type": "object",
                          "required": [
                            "listen"
                          ],
                          "properties": {
                            "listen": {
                              "pattern": ".+"
                            }
                          }
                        }
                      }
                    },
                    "else": {
                      "not": {
                        "required": [
                          "healthcheck_dynamic"
                        ]
                      }
                    }
                  }
                ]
              },
              "transformations": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "conditions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "check": {
                            "description": "Defines what to check.",
                            "type": "string",
                            "enum": [
                              "method",
                              "request_header",
                              "response_header",
                              "remote_ip_address"
                            ]
                          },
                          "name": {
                            "description": "Defines header name.",
                            "type": "string"
                          },
                          "pattern": {
                            "description": "Regex which defines matching condition.",
                            "type": "string"
                          },
                          "string_match": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "anchor": {
                                "description": "Specifies anchor for string bounding. '\\' by default.",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "pattern": "^.{1}$"
                              },
                              "file": {
                                "description": "Specifies path to file with strings.",
                                "type": "string",
                                "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                              },
                              "strings": {
                                "type": "array",
                                "items": {
                                  "description": "Specifies string to check.",
                                  "type": "string"
                                }
                              }
                            },
                            "allOf": [
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "strings"
                                  ],
                                  "properties": {
                                    "strings": {}
                                  }
                                },
                                "else": {
                                  "required": [
                                    "file"
                                  ]
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "file"
                                  ],
                                  "properties": {
                                    "file": {}
                                  }
                                },
                                "else": {
                                  "required": [
                                    "strings"
                                  ]
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "strings"
                                  ],
                                  "properties": {
                                    "strings": {}
                                  }
                                },
                                "then": {
                                  "not": {
                                    "required": [
                                      "file"
                                    ]
                                  }
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "file"
                                  ],
                                  "properties": {
                                    "file": {}
                                  }
                                },
                                "then": {
                                  "not": {
                                    "required": [
                                      "strings"
                                    ]
                                  }
                                }
                              }
                            ]
                          },
                          "contains": {
                            "description": "Specifies does file with strings contain checking value. True by default.",
                            "type": "boolean"
                          },
                          "skip_unicode_decoding": {
                            "description": "skips utf8tounicode and unicode decoding steps to normalize cyrrilic symbols. False by default.",
                            "type": "boolean"
                          },
                          "case_sensitive": {
                            "description": "Defines does pattern or string match case sensitive or not.",
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "check",
                          "case_sensitive"
                        ],
                        "allOf": [
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "string_match"
                              ],
                              "properties": {
                                "string_match": {}
                              }
                            },
                            "else": {
                              "required": [
                                "pattern"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "string_match"
                              ],
                              "properties": {
                                "string_match": {}
                              }
                            },
                            "then": {
                              "not": {
                                "required": [
                                  "pattern"
                                ]
                              }
                            }
                          }
                        ]
                      }
                    },
                    "default": {
                      "description": "Specifies next set of actions as default.",
                      "type": "boolean"
                    },
                    "actions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "action": {
                            "description": "Defines what have to be checked.",
                            "type": "string",
                            "enum": [
                              "add_response_header",
                              "add_proxy_header",
                              "remove_response_header",
                              "remove_proxy_header",
                              "return",
                              "pass"
                            ]
                          },
                          "status_code": {
                            "description": "Specifies status code to return.",
                            "type": "integer"
                          },
                          "override": {
                            "description": "Specifies override header or not. True by default.",
                            "type": "boolean"
                          },
                          "name": {
                            "description": "Specifies header to be transformed.",
                            "type": "string"
                          },
                          "value": {
                            "description": "Specifies value for setting to the header.",
                            "type": "string"
                          },
                          "value_from_header": {
                            "description": "Specifies request header name for setting it's value to the header.",
                            "type": "string",
                            "pattern": "^.+$"
                          },
                          "value_from_variable": {
                            "description": "Specifies nginx variable for setting it's value to the header.",
                            "type": "string",
                            "enum": [
                              "remote-address",
                              "ngx-x-forwarded-for"
                            ]
                          }
                        },
                        "required": [
                          "action"
                        ]
                      }
                    },
                    "description": {
                      "description": "Describes condition block log message",
                      "type": [
                        "number",
                        "string"
                      ]
                    }
                  },
                  "required": [
                    "actions"
                  ],
                  "allOf": [
                    {
                      "if": {
                        "type": "object",
                        "required": [
                          "default"
                        ],
                        "properties": {
                          "default": {}
                        }
                      },
                      "else": {
                        "required": [
                          "conditions"
                        ]
                      }
                    },
                    {
                      "if": {
                        "type": "object",
                        "required": [
                          "conditions"
                        ],
                        "properties": {
                          "conditions": {}
                        }
                      },
                      "else": {
                        "required": [
                          "default"
                        ]
                      }
                    },
                    {
                      "if": {
                        "type": "object",
                        "required": [
                          "default"
                        ],
                        "properties": {
                          "default": {}
                        }
                      },
                      "then": {
                        "not": {
                          "required": [
                            "conditions"
                          ]
                        }
                      }
                    }
                  ]
                }
              },
              "filters": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "filter_mds": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Specifies to enable or disable MDS. Default is \"True\".",
                        "type": "boolean"
                      },
                      "aio": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "When specified true, dedicated thread will be used for request/response processing when its possible, value inherited from parent and may be overrite in child",
                            "type": "boolean"
                          },
                          "thread_pool_id": {
                            "description": "name of thread pool from section system/optional/thread_pools, value inherite from parent and may by override in child. Must be specified when aio is true",
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        }
                      },
                      "ignore_parent": {
                        "description": "Specifies ignore parent rules and settings or not",
                        "type": "boolean"
                      },
                      "debug": {
                        "type": "boolean"
                      },
                      "config": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "SecRuleEngine": {
                            "enum": [
                              true,
                              false,
                              "DetectionOnly"
                            ]
                          },
                          "SecRequestBodyAccess": {
                            "type": "boolean"
                          },
                          "SecRequestBodyLimit": {
                            "type": "integer"
                          },
                          "SecRequestBodyLimitAction": {
                            "type": "string"
                          },
                          "SecPcreMatchLimit": {
                            "type": "integer"
                          },
                          "SecPcreMatchLimitRecursion": {
                            "type": "integer"
                          },
                          "SecResponseBodyAccess": {
                            "type": "boolean"
                          },
                          "SecResponseBodyMimeType": {
                            "type": "string"
                          },
                          "SecResponseBodyLimit": {
                            "type": "integer"
                          },
                          "SecResponseBodyLimitAction": {
                            "type": "string"
                          },
                          "SecStreamOutBodyInspection": {
                            "type": "boolean"
                          },
                          "SecUploadKeepFiles": {
                            "type": "boolean"
                          },
                          "SecAuditEngine": {
                            "type": "string"
                          },
                          "SecAuditLogRelevantStatus": {
                            "type": "string"
                          },
                          "SecAuditLogParts": {
                            "type": "string"
                          },
                          "SecAuditLogType": {
                            "type": "string",
                            "enum": [
                              "Syslog",
                              "Serial",
                              "Concurrent",
                              "Kafka"
                            ]
                          },
                          "SecAuditSyslogHost": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditSyslogPort": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditSyslogProtocol": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "tcp",
                              "udp"
                            ]
                          },
                          "SecAuditSyslogConnectTimeout": {
                            "type": "integer"
                          },
                          "SecArgumentSeparator": {
                            "type": "string"
                          },
                          "SecCookieFormat": {
                            "type": "integer"
                          },
                          "SecUnicodeMapFile": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "file": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "code": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            },
                            "required": [
                              "file",
                              "code"
                            ]
                          },
                          "SecUseTransformCache": {
                            "type": "boolean"
                          },
                          "SecRequestTimeout": {
                            "type": "integer"
                          },
                          "SecPassSlowRequest": {
                            "type": "boolean"
                          },
                          "SecResponseTimeout": {
                            "type": "integer"
                          },
                          "SecPassSlowResponse": {
                            "type": "boolean"
                          },
                          "SecLogFullBodyOnTimeout": {
                            "type": "boolean"
                          },
                          "SecAuditKafkaBrokers": {
                            "description": "CSV list of brokers",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditKafkaTopic": {
                            "description": "topic to connect to",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditKafkaProtocol": {
                            "description": "connection protocol",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "plaintext",
                              "ssl"
                            ]
                          },
                          "SecAuditKafkaCertificate": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditKafkaKey": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditKafkaCa": {
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        },
                        "allOf": [
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestBodyLimitAction"
                              ],
                              "properties": {
                                "SecRequestBodyLimitAction": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecRequestBodyLimit"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestBodyLimit"
                              ],
                              "properties": {
                                "SecRequestBodyLimit": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecRequestBodyLimitAction"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseBodyLimitAction"
                              ],
                              "properties": {
                                "SecResponseBodyLimitAction": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecResponseBodyLimit"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseBodyLimit"
                              ],
                              "properties": {
                                "SecResponseBodyLimit": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecResponseBodyLimitAction"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecAuditLogType"
                              ],
                              "properties": {
                                "SecAuditLogType": {
                                  "const": "Kafka"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecAuditKafkaBrokers"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecAuditLogType"
                              ],
                              "properties": {
                                "SecAuditLogType": {
                                  "const": "Kafka"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecAuditKafkaTopic"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecAuditKafkaProtocol"
                              ],
                              "properties": {
                                "SecAuditKafkaProtocol": {
                                  "const": "ssl"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecAuditKafkaCertificate"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecAuditKafkaProtocol"
                              ],
                              "properties": {
                                "SecAuditKafkaProtocol": {
                                  "const": "ssl"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecAuditKafkaKey"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestBodyLimitAction"
                              ],
                              "properties": {
                                "SecRequestBodyLimitAction": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecRequestBodyLimit"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestBodyLimit"
                              ],
                              "properties": {
                                "SecRequestBodyLimit": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecRequestBodyLimitAction"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseBodyLimitAction"
                              ],
                              "properties": {
                                "SecResponseBodyLimitAction": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecResponseBodyLimit"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseBodyLimit"
                              ],
                              "properties": {
                                "SecResponseBodyLimit": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecResponseBodyLimitAction"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestTimeout"
                              ],
                              "properties": {
                                "SecRequestTimeout": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecPassSlowRequest"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseTimeout"
                              ],
                              "properties": {
                                "SecResponseTimeout": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecPassSlowResponse"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseTimeout"
                              ],
                              "properties": {
                                "SecResponseTimeout": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecLogFullBodyOnTimeout"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestTimeout"
                              ],
                              "properties": {
                                "SecRequestTimeout": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecLogFullBodyOnTimeout"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecAuditKafkaProtocol"
                              ],
                              "properties": {
                                "SecAuditKafkaProtocol": {
                                  "const": "ssl"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecAuditKafkaCa"
                                ]
                              }
                            }
                          }
                        ]
                      },
                      "rules": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "base",
                            "owasp-crs",
                            "comodo",
                            "sowa-mq",
                            "sowa-http",
                            "sowa-ws",
                            "sowa-ufs",
                            "sowa-kafka",
                            "sowa-http-reversed"
                          ]
                        }
                      },
                      "custom_rules": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "filter_icap": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "request": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "icap_url": {
                            "description": "Specifies ICAP service url",
                            "type": "string",
                            "pattern": "(?i)\\b((?:https?:(?:/{1,3}|[a-z0-9%])|[a-z0-9.\\-]+[.](?:com|net|org|edu|gov|mil|aero|asia|biz|cat|coop|info|int|jobs|mobi|museum|name|post|pro|tel|travel|xxx|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cs|cu|cv|cx|cy|cz|dd|de|dj|dk|dm|do|dz|ec|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|Ja|sk|sl|sm|sn|so|sr|ss|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)/)(?:[^\\s()<>{}\\[\\]]+|\\([^\\s()]*?\\([^\\s()]+\\)[^\\s()]*?\\)|\\([^\\s]+?\\))+(?:\\([^\\s()]*?\\([^\\s()]+\\)[^\\s()]*?\\)|\\([^\\s]+?\\)|[^\\s`!()\\[\\]{};:'\".,<>?«»“”‘’])|(?:(?<!@)[a-z0-9]+(?:[.\\-][a-z0-9]+)*[.](?:com|net|org|edu|gov|mil|aero|asia|biz|cat|coop|info|int|jobs|mobi|museum|name|post|pro|tel|travel|xxx|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cs|cu|cv|cx|cy|cz|dd|de|dj|dk|dm|do|dz|ec|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|Ja|sk|sl|sm|sn|so|sr|ss|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)\\b/?(?!@)))"
                          },
                          "icap_silent": {
                            "description": "If this flag true never block",
                            "type": "string",
                            "enum": [
                              "on",
                              "off"
                            ]
                          },
                          "icap_body_temp_path": {
                            "description": "Specifies path to temp body",
                            "type": "string"
                          },
                          "icap_temp_buffer_size": {
                            "description": "Specifies temp buffer size",
                            "type": "string",
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "icap_max_none_buffered_size": {
                            "description": "Specifies max none buffered size",
                            "type": "string",
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "icap_connect_timeout": {
                            "description": "Specifies connect timeout",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[mMsS]{1})$"
                          },
                          "icap_read_timeout": {
                            "description": "Specifies read timeout",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[mMsS]{1})$"
                          },
                          "icap_write_timeout": {
                            "description": "Specifies write timeout",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[mMsS]{1})$"
                          },
                          "icap_mode": {
                            "description": "Specifies what to check - uploaded content or downloaded content",
                            "type": "string",
                            "enum": [
                              "REQMOD",
                              "RESPMOD"
                            ]
                          },
                          "icap_extensions": {
                            "type": "array",
                            "items": {
                              "description": "Specifies extensions which need send to icap service for checking",
                              "type": "string",
                              "pattern": "^(\\..*)|(\\*)$"
                            }
                          },
                          "icap_internal_error_code": {
                            "description": "Specifies HTTP status code which generated on communication with ICAP service (by default - 500)",
                            "type": "integer"
                          },
                          "icap_check_error_code": {
                            "description": "Specifies HTTP status code which generated when AV block message (by default - 403)",
                            "type": "integer"
                          },
                          "icap_internal_error_message": {
                            "description": "Specifies error message sending to client on comunication error with AV service (default - empty string)",
                            "type": "string"
                          },
                          "icap_check_error_message": {
                            "description": "Specifies error message sending to client when AV block message (default - empty string)",
                            "type": "string"
                          },
                          "icap_internal_error_message_file": {
                            "description": "Specifies file, which contains error message sending to client on comunication error with AV service (default - empty string)",
                            "type": "string",
                            "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                          },
                          "icap_check_error_message_file": {
                            "description": "Specifies file, which error message sending to client when AV block message (default - empty string)",
                            "type": "string",
                            "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                          },
                          "icap_internal_error_content_type": {
                            "description": "Specifies content-type header for error message sending to client on comunication error with AV service (default - empty string)",
                            "type": "string"
                          },
                          "icap_check_error_content_type": {
                            "description": "Specifies content-type header for error message sending to client when AV block message (default - empty string)",
                            "type": "string"
                          },
                          "icap_custom_headers": {
                            "type": "array",
                            "items": {
                              "description": "Specifies headers for icap",
                              "type": "string"
                            }
                          },
                          "icap_custom_http_headers": {
                            "type": "array",
                            "items": {
                              "description": "Specifies http headers for icap",
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "icap_url",
                          "icap_mode",
                          "icap_extensions"
                        ],
                        "allOf": [
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "_message_file"
                              ],
                              "properties": {
                                "_message_file": {}
                              }
                            },
                            "then": {
                              "not": {
                                "required": [
                                  "icap_internal_error_message"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "_message_file"
                              ],
                              "properties": {
                                "_message_file": {}
                              }
                            },
                            "then": {
                              "not": {
                                "required": [
                                  "icap_check_error_message"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "_message"
                              ],
                              "properties": {
                                "_message": {}
                              }
                            },
                            "then": {
                              "not": {
                                "required": [
                                  "icap_internal_error_message_file"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "_message"
                              ],
                              "properties": {
                                "_message": {}
                              }
                            },
                            "then": {
                              "not": {
                                "required": [
                                  "icap_check_error_message_file"
                                ]
                              }
                            }
                          }
                        ]
                      },
                      "response": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "icap_url": {
                            "description": "Specifies ICAP service url",
                            "type": "string"
                          },
                          "icap_silent": {
                            "description": "If this flag true never block",
                            "type": "string",
                            "enum": [
                              "on",
                              "off"
                            ]
                          },
                          "icap_body_temp_path": {
                            "description": "Specifies path to temp body",
                            "type": "string"
                          },
                          "icap_temp_buffer_size": {
                            "description": "Specifies temp buffer size",
                            "type": "string",
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "icap_max_none_buffered_size": {
                            "description": "Specifies max none buffered size",
                            "type": "string",
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "icap_connect_timeout": {
                            "description": "Specifies connect timeout",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[mMsS]{1})$"
                          },
                          "icap_read_timeout": {
                            "description": "Specifies read timeout",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[mMsS]{1})$"
                          },
                          "icap_write_timeout": {
                            "description": "Specifies write timeout",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[mMsS]{1})$"
                          },
                          "icap_mode": {
                            "description": "Specifies what to check - uploaded content or downloaded content",
                            "type": "string",
                            "enum": [
                              "REQMOD",
                              "RESPMOD"
                            ]
                          },
                          "icap_extensions": {
                            "type": "array",
                            "items": {
                              "description": "Specifies extensions which need send to icap service for checking",
                              "type": "string",
                              "pattern": "^(\\..*)|(\\*)$"
                            }
                          },
                          "icap_internal_error_code": {
                            "description": "Specifies HTTP status code which generated on communication with ICAP service (by default - 500)",
                            "type": "integer"
                          },
                          "icap_check_error_code": {
                            "description": "Specifies HTTP status code which generated when AV block message (by default - 403)",
                            "type": "integer"
                          },
                          "icap_internal_error_message": {
                            "description": "Specifies error message sending to client on comunication error with AV service (default - empty string)",
                            "type": "string"
                          },
                          "icap_check_error_message": {
                            "description": "Specifies error message sending to client when AV block message (default - empty string)",
                            "type": "string"
                          },
                          "icap_internal_error_message_file": {
                            "description": "Specifies file, which contains error message sending to client on comunication error with AV service (default - empty string)",
                            "type": "string",
                            "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                          },
                          "icap_check_error_message_file": {
                            "description": "Specifies file, which error message sending to client when AV block message (default - empty string)",
                            "type": "string",
                            "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                          },
                          "icap_internal_error_content_type": {
                            "description": "Specifies content-type header for error message sending to client on comunication error with AV service (default - empty string)",
                            "type": "string"
                          },
                          "icap_check_error_content_type": {
                            "description": "Specifies content-type header for error message sending to client when AV block message (default - empty string)",
                            "type": "string"
                          },
                          "icap_custom_headers": {
                            "type": "array",
                            "items": {
                              "description": "Specifies headers for icap",
                              "type": "string"
                            }
                          },
                          "icap_custom_http_headers": {
                            "type": "array",
                            "items": {
                              "description": "Specifies http headers for icap",
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "icap_url",
                          "icap_mode",
                          "icap_extensions"
                        ],
                        "allOf": [
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "_message_file"
                              ],
                              "properties": {
                                "_message_file": {}
                              }
                            },
                            "then": {
                              "not": {
                                "required": [
                                  "icap_internal_error_message"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "_message_file"
                              ],
                              "properties": {
                                "_message_file": {}
                              }
                            },
                            "then": {
                              "not": {
                                "required": [
                                  "icap_check_error_message"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "_message"
                              ],
                              "properties": {
                                "_message": {}
                              }
                            },
                            "then": {
                              "not": {
                                "required": [
                                  "icap_internal_error_message_file"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "_message"
                              ],
                              "properties": {
                                "_message": {}
                              }
                            },
                            "then": {
                              "not": {
                                "required": [
                                  "icap_check_error_message_file"
                                ]
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                }
              },
              "validators": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "validator_json": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "request": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "default": {
                              "description": "Specify the default rule",
                              "type": "boolean"
                            },
                            "url": {
                              "type": "string"
                            },
                            "method": {
                              "type": "string",
                              "enum": [
                                "post",
                                "put",
                                "delete",
                                "patch"
                              ]
                            },
                            "params": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "name": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "operator": {
                                    "type": "string",
                                    "enum": [
                                      "=",
                                      "!=",
                                      "~",
                                      "~*",
                                      "!~",
                                      "!~*"
                                    ]
                                  },
                                  "pattern": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  }
                                },
                                "required": [
                                  "name",
                                  "operator",
                                  "pattern"
                                ]
                              }
                            },
                            "allow_empty_body": {
                              "description": "Specifies allow empty bodies or not.",
                              "type": "boolean"
                            },
                            "allow_primitives_in_root": {
                              "description": "Specifies allow primitives(integer/string/boolean/null) in root of json or allowed only JSONObject/JSONArray in root. Default - false",
                              "type": "boolean"
                            },
                            "transforms": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "PostFormDataToFlateJson"
                                ]
                              }
                            },
                            "schema": {
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            }
                          },
                          "required": [
                            "schema"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "url"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "method"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "params"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "allow_empty_body"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "allow_primitives_in_root"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      },
                      "response": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "default": {
                              "description": "Specify the default rule",
                              "type": "boolean"
                            },
                            "url": {
                              "type": "string"
                            },
                            "method": {
                              "type": "string",
                              "enum": [
                                "get",
                                "post",
                                "put",
                                "delete",
                                "patch"
                              ]
                            },
                            "params": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "name": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "operator": {
                                    "type": "string",
                                    "enum": [
                                      "=",
                                      "!=",
                                      "~",
                                      "~*",
                                      "!~",
                                      "!~*"
                                    ]
                                  },
                                  "pattern": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  }
                                },
                                "required": [
                                  "name",
                                  "operator",
                                  "pattern"
                                ]
                              }
                            },
                            "allow_empty_body": {
                              "description": "Specifies allow empty bodies or not.",
                              "type": "boolean"
                            },
                            "allow_primitives_in_root": {
                              "description": "Specifies allow primitives(integer/string/boolean/null) in root of json or allowed only JSONObject/JSONArray in root. Default - false",
                              "type": "boolean"
                            },
                            "transforms": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "PostFormDataToFlateJson"
                                ]
                              }
                            },
                            "schema": {
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "response_code": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "operator": {
                                  "type": "string",
                                  "enum": [
                                    "=",
                                    "!=",
                                    "~",
                                    "~*",
                                    "!~",
                                    "!~*"
                                  ]
                                },
                                "pattern": {
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                }
                              },
                              "required": [
                                "operator",
                                "pattern"
                              ]
                            }
                          },
                          "required": [
                            "schema"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "url"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "method"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "params"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "allow_empty_body"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "allow_primitives_in_root"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "response_code"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      },
                      "response_proc_options": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "max_inmemory_size": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "response_generation_type": {
                            "description": "Defines how validator generate error response, when internal - using direct generation in java call, when external - native redirect to error page, by default internal",
                            "type": "string",
                            "enum": [
                              "internal",
                              "external"
                            ]
                          }
                        }
                      },
                      "request_error_code": {
                        "type": "integer"
                      },
                      "request_error_message": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "response_error_code": {
                        "type": "integer"
                      },
                      "response_error_message": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "trailing_garbage_policy": {
                        "type": "string",
                        "enum": [
                          "WEAK",
                          "STANDARD",
                          "STRONG"
                        ]
                      },
                      "action_when_no_rule": {
                        "description": "Defines behavior in case when request or response don't have apropriate rule to validate, if DENY - message blocked, if IGNORE - message processing continue By default - deny",
                        "type": "string",
                        "enum": [
                          "ignore",
                          "deny"
                        ]
                      },
                      "action": {
                        "description": "Defines behavior in case when request or response validation is failed, ignore - only log error, but request or response not blocked, deny - request/response blocked, by default - deny",
                        "type": "string",
                        "enum": [
                          "ignore",
                          "deny"
                        ]
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "response"
                          ],
                          "properties": {
                            "response": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "response_proc_options"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "request"
                          ],
                          "properties": {
                            "request": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "request_error_code"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "request"
                          ],
                          "properties": {
                            "request": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "request_error_message"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "response"
                          ],
                          "properties": {
                            "response": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "response_error_code"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "response"
                          ],
                          "properties": {
                            "response": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "response_error_message"
                            ]
                          }
                        }
                      }
                    ]
                  },
                  "validator_xsd": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "request": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "default": {
                              "description": "Specify the default rule",
                              "type": "boolean"
                            },
                            "url": {
                              "type": "string"
                            },
                            "method": {
                              "type": "string",
                              "enum": [
                                "post",
                                "put",
                                "delete",
                                "patch"
                              ]
                            },
                            "params": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "name": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "operator": {
                                    "type": "string",
                                    "enum": [
                                      "=",
                                      "!=",
                                      "~",
                                      "~*",
                                      "!~",
                                      "!~*"
                                    ]
                                  },
                                  "pattern": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  }
                                },
                                "required": [
                                  "name",
                                  "operator",
                                  "pattern"
                                ]
                              }
                            },
                            "transforms": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "Base64Decode",
                                  "ASN1ContentExtractor"
                                ]
                              }
                            },
                            "schema": {
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "wsdl": {
                              "type": "boolean"
                            },
                            "default_wsdl_style": {
                              "type": "string",
                              "enum": [
                                "document",
                                "rpc"
                              ]
                            }
                          },
                          "required": [
                            "schema"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "url"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "method"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "params"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "wsdl"
                                ],
                                "properties": {
                                  "wsdl": {
                                    "const": false
                                  }
                                }
                              }
                            }
                          ]
                        }
                      },
                      "request_limits": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "entityExpansionLimit": {
                            "description": "Limit the number of entity expansions. Default - 64000",
                            "type": "integer"
                          },
                          "elementAttributeLimit": {
                            "description": "Limit the number of attributes an element can have. Default - 10000",
                            "type": "integer"
                          },
                          "maxOccurLimit": {
                            "description": "Limit the number of content model nodes that may be created when building a grammar for a W3C XML Schema that contains maxOccurs attributes with values other than \"unbounded\". Default - 5000",
                            "type": "integer"
                          },
                          "totalEntitySizeLimit": {
                            "description": "Limit the total size of all entities that include general and parameter entities. The size is calculated as an aggregation of all entities. Default - 50000000",
                            "type": "integer"
                          },
                          "maxGeneralEntitySizeLimit": {
                            "description": "Limit the maximum size of any general entities. Default - 0",
                            "type": "integer"
                          },
                          "maxParameterEntitySizeLimit": {
                            "description": "Limit the maximum size of any parameter entities, including the result of nesting multiple parameter entities. Default - 1000000",
                            "type": "integer"
                          },
                          "entityReplacementLimit": {
                            "description": "Limit the total number of nodes in all entity references. Default - 3000000",
                            "type": "integer"
                          },
                          "maxElementDepth": {
                            "description": "Limit the maximum element depth. Default - 0",
                            "type": "integer"
                          },
                          "maxXMLNameLimit": {
                            "description": "Limit the maximum size of XML names, including element name, attribute name and namespace prefix and URI. Default - 1000",
                            "type": "integer"
                          }
                        }
                      },
                      "response": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "default": {
                              "description": "Specify the default rule",
                              "type": "boolean"
                            },
                            "url": {
                              "type": "string"
                            },
                            "method": {
                              "type": "string",
                              "enum": [
                                "get",
                                "post",
                                "put",
                                "delete",
                                "patch"
                              ]
                            },
                            "params": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "name": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "operator": {
                                    "type": "string",
                                    "enum": [
                                      "=",
                                      "!=",
                                      "~",
                                      "~*",
                                      "!~",
                                      "!~*"
                                    ]
                                  },
                                  "pattern": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  }
                                },
                                "required": [
                                  "name",
                                  "operator",
                                  "pattern"
                                ]
                              }
                            },
                            "transforms": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "Base64Decode",
                                  "ASN1ContentExtractor"
                                ]
                              }
                            },
                            "schema": {
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "wsdl": {
                              "type": "boolean"
                            },
                            "default_wsdl_style": {
                              "type": "string",
                              "enum": [
                                "document",
                                "rpc"
                              ]
                            },
                            "response_code": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "operator": {
                                  "type": "string",
                                  "enum": [
                                    "=",
                                    "!=",
                                    "~",
                                    "~*",
                                    "!~",
                                    "!~*"
                                  ]
                                },
                                "pattern": {
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                }
                              },
                              "required": [
                                "operator",
                                "pattern"
                              ]
                            }
                          },
                          "required": [
                            "schema"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "url"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "method"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "params"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "wsdl"
                                ],
                                "properties": {
                                  "wsdl": {
                                    "const": false
                                  }
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "response_code"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      },
                      "response_limits": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "entityExpansionLimit": {
                            "description": "Limit the number of entity expansions. Default - 64000",
                            "type": "integer"
                          },
                          "elementAttributeLimit": {
                            "description": "Limit the number of attributes an element can have. Default - 10000",
                            "type": "integer"
                          },
                          "maxOccurLimit": {
                            "description": "Limit the number of content model nodes that may be created when building a grammar for a W3C XML Schema that contains maxOccurs attributes with values other than \"unbounded\". Default - 5000",
                            "type": "integer"
                          },
                          "totalEntitySizeLimit": {
                            "description": "Limit the total size of all entities that include general and parameter entities. The size is calculated as an aggregation of all entities. Default - 50000000",
                            "type": "integer"
                          },
                          "maxGeneralEntitySizeLimit": {
                            "description": "Limit the maximum size of any general entities. Default - 0",
                            "type": "integer"
                          },
                          "maxParameterEntitySizeLimit": {
                            "description": "Limit the maximum size of any parameter entities, including the result of nesting multiple parameter entities. Default - 1000000",
                            "type": "integer"
                          },
                          "entityReplacementLimit": {
                            "description": "Limit the total number of nodes in all entity references. Default - 3000000",
                            "type": "integer"
                          },
                          "maxElementDepth": {
                            "description": "Limit the maximum element depth. Default - 0",
                            "type": "integer"
                          },
                          "maxXMLNameLimit": {
                            "description": "Limit the maximum size of XML names, including element name, attribute name and namespace prefix and URI. Default - 1000",
                            "type": "integer"
                          }
                        }
                      },
                      "response_proc_options": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "max_inmemory_size": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "response_generation_type": {
                            "description": "Defines how validator generate error response, when internal - using direct generation in java call, when external - native redirect to error page, by default internal",
                            "type": "string",
                            "enum": [
                              "internal",
                              "external"
                            ]
                          }
                        }
                      },
                      "request_error_code": {
                        "type": "integer"
                      },
                      "request_error_message": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "response_error_code": {
                        "type": "integer"
                      },
                      "response_error_message": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "action_when_no_rule": {
                        "description": "Defines behavior in case when request or response don't have apropriate rule to validate, if DENY - message blocked, if IGNORE - message processing continue By default - deny",
                        "type": "string",
                        "enum": [
                          "ignore",
                          "deny"
                        ]
                      },
                      "action": {
                        "description": "Defines behavior in case when request or response validation is failed, ignore - only log error, but request or response not blocked, deny - request/response blocked, by default - deny",
                        "type": "string",
                        "enum": [
                          "ignore",
                          "deny"
                        ]
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "request"
                          ],
                          "properties": {
                            "request": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "request_limits"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "response"
                          ],
                          "properties": {
                            "response": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "response_limits"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "response"
                          ],
                          "properties": {
                            "response": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "response_proc_options"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "request"
                          ],
                          "properties": {
                            "request": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "request_error_code"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "request"
                          ],
                          "properties": {
                            "request": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "request_error_message"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "response"
                          ],
                          "properties": {
                            "response": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "response_error_code"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "response"
                          ],
                          "properties": {
                            "response": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "response_error_message"
                            ]
                          }
                        }
                      }
                    ]
                  }
                }
              },
              "modifiers": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "set_header": {
                    "description": "Allows to redefine or replace header in client request.",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "proxy_host_resolved": {
                    "description": "Determines whether the original peer name or its resolved IP representation will be pass to the upstream in header \"Host\". Default is false.",
                    "type": "boolean"
                  },
                  "pass_header": {
                    "description": "Allows passing forbidden headers from the upstream to the client.",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "proxy_redirect": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "sub_filter": {
                    "description": "Allows to make replace from one string to another in the upstream response.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "once": {
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "last_modified": {
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "replace": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "from": {
                              "type": "string"
                            },
                            "to": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "from",
                            "to"
                          ]
                        }
                      }
                    },
                    "required": [
                      "replace"
                    ]
                  },
                  "subs_filter": {
                    "description": "Allows to make replace from one string to another in the upstream response using regular expressions.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "mime_types": {
                        "description": "Default \"*\"",
                        "type": "string"
                      },
                      "replace": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "from": {
                              "type": "string"
                            },
                            "to": {
                              "type": "string"
                            },
                            "flags": {
                              "description": "Default \"r\"",
                              "type": "array",
                              "uniqueItems": true,
                              "items": {
                                "type": "string",
                                "enum": [
                                  "i",
                                  "g",
                                  "o",
                                  "r"
                                ]
                              }
                            }
                          },
                          "required": [
                            "from",
                            "to"
                          ]
                        }
                      }
                    },
                    "required": [
                      "replace"
                    ]
                  },
                  "cors": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "origin_wl": {
                        "description": "Specifies whitelist for the Origin header.",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "origin_wl_type": {
                        "description": "Specifies type for the 'origin_wl' directive. 're' - whitelist with regex values, 'recl' - whitelist with caseless regex values. If not specified, then full match used.",
                        "type": "string",
                        "enum": [
                          "re",
                          "recl"
                        ]
                      },
                      "origin_allow_null_wl": {
                        "description": "Specifies whitelist of hosts whom allowed 'Origin null'.",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "origin_allow_null_wl_type": {
                        "description": "Specifies type for the 'origin_allow_null_wl' directive. 're' - whitelist with regex values, 'recl' - whitelist with caseless regex values. If not specified, then full match used.",
                        "type": "string",
                        "enum": [
                          "re",
                          "recl"
                        ]
                      },
                      "method_wl": {
                        "description": "Specifies whitelist for the request method. Used in prefligth request.",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "get",
                            "head",
                            "post",
                            "put",
                            "connect",
                            "options",
                            "trace",
                            "patch",
                            "delete"
                          ]
                        }
                      },
                      "deny_status": {
                        "description": "Specifies the deny status when CORS checks is failed. By default is 403.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(4|5)[0-9]{2}$"
                      }
                    },
                    "required": [
                      "origin_wl",
                      "method_wl"
                    ]
                  },
                  "set_output_headers": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "headers": {
                          "description": "Specifies header line. For example 'X-MyHeader foo'.",
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "status_codes": {
                          "description": "Specifies status code criteria.",
                          "type": "array",
                          "items": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^[1-5][0-9]{2}$"
                          }
                        },
                        "content_types": {
                          "description": "Specifies content type criteria in response headers. For example 'text/html'.",
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "conditions": {
                          "description": "Specifies the conditions file for the headers.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "conditions_reverse": {
                          "type": "boolean"
                        },
                        "set_var": {
                          "description": "Setting variable for use in this headers. For example '$orig_xff $http_x_forwarded_for'.",
                          "type": "string"
                        },
                        "value_regex": {
                          "description": "Updates an existing header if it's current value matches the specified regular expression. Example '~*session=.*'",
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "required": [
                        "headers"
                      ],
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "conditions"
                            ],
                            "properties": {
                              "conditions": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "conditions_reverse"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  },
                  "set_input_headers": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "headers": {
                          "description": "Specifies header line. For example 'X-MyHeader foo'.",
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "content_types": {
                          "description": "Specifies content type criteria in request headers. For example 'text/html'.",
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "conditions": {
                          "description": "Specifies the conditions file for the headers.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "conditions_reverse": {
                          "type": "boolean"
                        },
                        "set_var": {
                          "description": "Setting variable for use in this headers. For example '$orig_xff $http_x_forwarded_for'.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "headers"
                      ],
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "conditions"
                            ],
                            "properties": {
                              "conditions": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "conditions_reverse"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  }
                },
                "allOf": [
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        ".."
                      ],
                      "properties": {
                        "..": {
                          "properties": {
                            "optional": {
                              "type": "object",
                              "required": [
                                "http_version"
                              ],
                              "properties": {
                                "http_version": {}
                              }
                            }
                          }
                        }
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_redirect"
                        ]
                      }
                    }
                  }
                ]
              },
              "postprocessors": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "postprocessor_error": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "code": {
                        "description": "Specifies an array of error codes by which templates will be generated.",
                        "type": "array",
                        "items": {
                          "type": "integer"
                        }
                      },
                      "pattern_file": {
                        "description": "Specifies pattern file which will be used as response body.",
                        "type": "string",
                        "enum": [
                          "OSWP_Error_template.json",
                          "abo_errors_schema.json",
                          "default_json.json",
                          "errors_schema.json",
                          "errors_schema_v_1.0.json",
                          "vrvr_error_template.json",
                          "workflow_error_schema.json"
                        ]
                      },
                      "custom_pattern_file": {
                        "description": "Specifies rule file which describes how to fill pattern file.",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "rules_file": {
                        "description": "Specifies rule file which describes how to fill pattern file. Default - rules file from system resources.",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "content_type": {
                        "description": "Specifies content type for response header. Default - none.",
                        "type": "string"
                      },
                      "grpc_error_processing": {
                        "description": "Specifies whether service is a grpc proxy or not, and enables grpc error processing.",
                        "type": "boolean"
                      },
                      "skip_for_upstream_statuses": {
                        "description": "Specifies regex for upstream response status on which response generator will not be used. Default - none.",
                        "type": "string"
                      },
                      "handle_upstream_errors": {
                        "description": "Specifies handle upstream errors or not. True by default.",
                        "type": "boolean"
                      },
                      "handle_upstream_errors_status": {
                        "type": "array",
                        "items": {
                          "type": "integer",
                          "pattern": "^[3-5]\\d\\d$"
                        }
                      },
                      "redirect": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "code": {
                            "description": "Specifies redirect status code",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              301,
                              302,
                              303,
                              307,
                              308
                            ]
                          },
                          "url": {
                            "description": "Defines url to redirect - sets Location response header.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(?:http:\\/\\/|https:\\/\\/|$scheme).+$"
                          }
                        },
                        "required": [
                          "code",
                          "url"
                        ]
                      }
                    }
                  }
                }
              },
              "chains": {
                "description": "The action bus",
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "request_chains": {
                    "description": "Specifies chain of actions for the request.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "message": {
                          "description": "Text for analysis. May contain variables. E.g. $shared_request_body",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "phase": {
                          "description": "The phase at which actions form \"action_list\" will be executed. Default is access.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "rewrite",
                            "access"
                          ]
                        },
                        "trace_config": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "enableAllActions": {
                              "description": "enable tracing of all actions in chains",
                              "type": "boolean"
                            },
                            "enableAllChains": {
                              "description": "enable tracing of all actions in child chains",
                              "type": "boolean"
                            },
                            "mode": {
                              "description": "Enable or disable tracing at this level.",
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "enabled": {
                                  "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "enum": [
                                    "on",
                                    "off",
                                    "var_based"
                                  ]
                                },
                                "var": {
                                  "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                }
                              }
                            },
                            "spanAttributes": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "name": {
                                    "description": "name of attribute",
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "value": {
                                    "description": "value of attribute, can contain variables",
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  }
                                }
                              }
                            },
                            "spanName": {
                              "description": "Specify name of span",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "enableSocketsTracing": {
                              "description": "Enable or disable socket tracing, by default enabled",
                              "type": "boolean"
                            }
                          }
                        },
                        "requiredChildOneOf": {
                          "description": "Specifies unverifed action check",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "decision": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "BLOCK",
                                "WARN"
                              ]
                            },
                            "onlyCheckers": {
                              "type": "boolean"
                            },
                            "include": {
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            },
                            "exclude": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "required": [
                            "decision"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "exclude"
                                ],
                                "properties": {
                                  "exclude": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "include"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "include"
                                ],
                                "properties": {
                                  "include": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "exclude"
                                  ]
                                }
                              }
                            }
                          ]
                        },
                        "actions": {
                          "description": "Specifies a list of actions.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "action": {
                                "description": "Specifies an action to perform",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "ASN1ContentExtractor",
                                  "Base64Decode",
                                  "ConditionChecker",
                                  "CheckDataSize",
                                  "CheckMimeType",
                                  "JsonPathExtract",
                                  "JsonPathExtractToVars",
                                  "JsonValidation",
                                  "XsdValidation",
                                  "PostFormDataToFlateJson",
                                  "MultipartExtract",
                                  "SetMessageFromVar",
                                  "SetVarFromMessage",
                                  "JwsToJson",
                                  "XPathExtract",
                                  "XPathExtractToVars",
                                  "SharedMapDeleter",
                                  "SharedMapRemover",
                                  "SharedMapSetter",
                                  "SharedMapGetter",
                                  "RandomNumberToVar",
                                  "VarsToSharedMap",
                                  "SharedMapToVars",
                                  "AntivirusFileChecker",
                                  "MtomExtractor",
                                  "JsonTransformer",
                                  "SetVar",
                                  "GraphQLRequestValidation",
                                  "ProtobufValidation",
                                  "OpenApiValidation",
                                  "DelimiterSplitter",
                                  "VarsToFile",
                                  "FileToVars",
                                  "WsdlValidation",
                                  "HttpFilter",
                                  "ProtobufToJson",
                                  "FilterMds",
                                  "OcspSignValidator",
                                  "OcspToJson",
                                  "ASN1ToJson",
                                  "XmlTransformer",
                                  "UrlEncode",
                                  "UrlDecodeUni",
                                  "UrlDecode",
                                  "HexDecode",
                                  "HexEncode",
                                  "ToLowerCase",
                                  "ToUpperCase",
                                  "Utf8ToUnicode",
                                  "Trim",
                                  "ICAPFileChecker",
                                  "MessageToFile",
                                  "MultipartFormGenerateFromVar",
                                  "HttpSender",
                                  "MessageAccumulator",
                                  "MessageFromAccumulator",
                                  "MessageFromPattern",
                                  "MultipartFormGenerateFromMessage",
                                  "JsonPatchMessage",
                                  "JsonPatchVar",
                                  "DigestFromMessage",
                                  "Base64Encode",
                                  "HMac",
                                  "FileToMessage",
                                  "JwtVerifier",
                                  "CharsetChecker",
                                  "LdapSearch",
                                  "UnicodeDecode",
                                  "MessageMapper",
                                  "SimpleRateLimiter",
                                  "EventSourceConverter",
                                  "LazySessionTimeChecker",
                                  "CalculateMessageProperties"
                                ]
                              },
                              "id": {
                                "description": "An identificator of action",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "conditions": {
                                "description": "Specifies the conditions for performina an action.",
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "var": {
                                      "description": "Specifies a variable to check.",
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    },
                                    "operator": {
                                      "description": "Specifies an operator.",
                                      "type": [
                                        "number",
                                        "string"
                                      ],
                                      "enum": [
                                        "=",
                                        "!=",
                                        "<=",
                                        ">=",
                                        ">",
                                        "<",
                                        "in",
                                        "not_in",
                                        "~",
                                        "~*",
                                        "!~",
                                        "!~*",
                                        "ip_range",
                                        "!ip_range",
                                        "dn_mask",
                                        "!dn_mask"
                                      ]
                                    },
                                    "val": {
                                      "description": "Specifies a value to check.",
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "var",
                                    "operator",
                                    "val"
                                  ]
                                }
                              },
                              "trace_config": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "enableAllActions": {
                                    "description": "enable tracing of all actions in chains",
                                    "type": "boolean"
                                  },
                                  "enableAllChains": {
                                    "description": "enable tracing of all actions in child chains",
                                    "type": "boolean"
                                  },
                                  "mode": {
                                    "description": "Enable or disable tracing at this level.",
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "enabled": {
                                        "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                        "type": [
                                          "number",
                                          "string"
                                        ],
                                        "enum": [
                                          "on",
                                          "off",
                                          "var_based"
                                        ]
                                      },
                                      "var": {
                                        "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                        "type": [
                                          "number",
                                          "string"
                                        ]
                                      }
                                    }
                                  },
                                  "spanAttributes": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "name": {
                                          "description": "name of attribute",
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "value": {
                                          "description": "value of attribute, can contain variables",
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "spanName": {
                                    "description": "Specify name of span",
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "enableSocketsTracing": {
                                    "description": "Enable or disable socket tracing, by default enabled",
                                    "type": "boolean"
                                  }
                                }
                              },
                              "params": {
                                "description": "Specifies extra parameters for the actions.",
                                "type": "object",
                                "additionalProperties": true
                              },
                              "requiredChildOneOf": {
                                "description": "Specifies unverifed action check",
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "decision": {
                                    "type": [
                                      "number",
                                      "string"
                                    ],
                                    "enum": [
                                      "BLOCK",
                                      "WARN"
                                    ]
                                  },
                                  "onlyCheckers": {
                                    "type": "boolean"
                                  },
                                  "include": {
                                    "type": "array",
                                    "items": {
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    }
                                  },
                                  "exclude": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  }
                                },
                                "required": [
                                  "decision"
                                ],
                                "allOf": [
                                  {
                                    "if": {
                                      "type": "object",
                                      "required": [
                                        "exclude"
                                      ],
                                      "properties": {
                                        "exclude": {}
                                      }
                                    },
                                    "then": {
                                      "not": {
                                        "required": [
                                          "include"
                                        ]
                                      }
                                    }
                                  },
                                  {
                                    "if": {
                                      "type": "object",
                                      "required": [
                                        "include"
                                      ],
                                      "properties": {
                                        "include": {}
                                      }
                                    },
                                    "then": {
                                      "not": {
                                        "required": [
                                          "exclude"
                                        ]
                                      }
                                    }
                                  }
                                ]
                              },
                              "actions": {
                                "description": "Specifies a list of actions.",
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "action": {
                                      "description": "Specifies an action to perform",
                                      "type": [
                                        "number",
                                        "string"
                                      ],
                                      "enum": [
                                        "ASN1ContentExtractor",
                                        "Base64Decode",
                                        "ConditionChecker",
                                        "CheckDataSize",
                                        "CheckMimeType",
                                        "JsonPathExtract",
                                        "JsonPathExtractToVars",
                                        "JsonValidation",
                                        "XsdValidation",
                                        "PostFormDataToFlateJson",
                                        "MultipartExtract",
                                        "SetMessageFromVar",
                                        "SetVarFromMessage",
                                        "JwsToJson",
                                        "XPathExtract",
                                        "XPathExtractToVars",
                                        "SharedMapDeleter",
                                        "SharedMapRemover",
                                        "SharedMapSetter",
                                        "SharedMapGetter",
                                        "RandomNumberToVar",
                                        "VarsToSharedMap",
                                        "SharedMapToVars",
                                        "AntivirusFileChecker",
                                        "MtomExtractor",
                                        "JsonTransformer",
                                        "SetVar",
                                        "GraphQLRequestValidation",
                                        "ProtobufValidation",
                                        "OpenApiValidation",
                                        "DelimiterSplitter",
                                        "VarsToFile",
                                        "FileToVars",
                                        "WsdlValidation",
                                        "HttpFilter",
                                        "ProtobufToJson",
                                        "FilterMds",
                                        "OcspSignValidator",
                                        "OcspToJson",
                                        "ASN1ToJson",
                                        "XmlTransformer",
                                        "UrlEncode",
                                        "UrlDecodeUni",
                                        "UrlDecode",
                                        "HexDecode",
                                        "HexEncode",
                                        "ToLowerCase",
                                        "ToUpperCase",
                                        "Utf8ToUnicode",
                                        "Trim",
                                        "ICAPFileChecker",
                                        "MessageToFile",
                                        "MultipartFormGenerateFromVar",
                                        "HttpSender",
                                        "MessageAccumulator",
                                        "MessageFromAccumulator",
                                        "MessageFromPattern",
                                        "MultipartFormGenerateFromMessage",
                                        "JsonPatchMessage",
                                        "JsonPatchVar",
                                        "DigestFromMessage",
                                        "Base64Encode",
                                        "HMac",
                                        "FileToMessage",
                                        "JwtVerifier",
                                        "CharsetChecker",
                                        "LdapSearch",
                                        "UnicodeDecode",
                                        "MessageMapper",
                                        "SimpleRateLimiter",
                                        "EventSourceConverter",
                                        "LazySessionTimeChecker",
                                        "CalculateMessageProperties"
                                      ]
                                    },
                                    "id": {
                                      "description": "An identificator of action",
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    },
                                    "conditions": {
                                      "description": "Specifies the conditions for performina an action.",
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "additionalProperties": false,
                                        "properties": {
                                          "var": {
                                            "description": "Specifies a variable to check.",
                                            "type": [
                                              "number",
                                              "string"
                                            ]
                                          },
                                          "operator": {
                                            "description": "Specifies an operator.",
                                            "type": [
                                              "number",
                                              "string"
                                            ],
                                            "enum": [
                                              "=",
                                              "!=",
                                              "<=",
                                              ">=",
                                              ">",
                                              "<",
                                              "in",
                                              "not_in",
                                              "~",
                                              "~*",
                                              "!~",
                                              "!~*",
                                              "ip_range",
                                              "!ip_range",
                                              "dn_mask",
                                              "!dn_mask"
                                            ]
                                          },
                                          "val": {
                                            "description": "Specifies a value to check.",
                                            "type": [
                                              "number",
                                              "string"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "var",
                                          "operator",
                                          "val"
                                        ]
                                      }
                                    },
                                    "trace_config": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "enableAllActions": {
                                          "description": "enable tracing of all actions in chains",
                                          "type": "boolean"
                                        },
                                        "enableAllChains": {
                                          "description": "enable tracing of all actions in child chains",
                                          "type": "boolean"
                                        },
                                        "mode": {
                                          "description": "Enable or disable tracing at this level.",
                                          "type": "object",
                                          "additionalProperties": false,
                                          "properties": {
                                            "enabled": {
                                              "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                              "type": [
                                                "number",
                                                "string"
                                              ],
                                              "enum": [
                                                "on",
                                                "off",
                                                "var_based"
                                              ]
                                            },
                                            "var": {
                                              "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                              "type": [
                                                "number",
                                                "string"
                                              ]
                                            }
                                          }
                                        },
                                        "spanAttributes": {
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "name": {
                                                "description": "name of attribute",
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              },
                                              "value": {
                                                "description": "value of attribute, can contain variables",
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              }
                                            }
                                          }
                                        },
                                        "spanName": {
                                          "description": "Specify name of span",
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "enableSocketsTracing": {
                                          "description": "Enable or disable socket tracing, by default enabled",
                                          "type": "boolean"
                                        }
                                      }
                                    },
                                    "params": {
                                      "description": "Specifies extra parameters for the actions.",
                                      "type": "object",
                                      "additionalProperties": true
                                    },
                                    "requiredChildOneOf": {
                                      "description": "Specifies unverifed action check",
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "decision": {
                                          "type": [
                                            "number",
                                            "string"
                                          ],
                                          "enum": [
                                            "BLOCK",
                                            "WARN"
                                          ]
                                        },
                                        "onlyCheckers": {
                                          "type": "boolean"
                                        },
                                        "include": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "number",
                                              "string"
                                            ]
                                          }
                                        },
                                        "exclude": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        }
                                      },
                                      "required": [
                                        "decision"
                                      ],
                                      "allOf": [
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "exclude"
                                            ],
                                            "properties": {
                                              "exclude": {}
                                            }
                                          },
                                          "then": {
                                            "not": {
                                              "required": [
                                                "include"
                                              ]
                                            }
                                          }
                                        },
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "include"
                                            ],
                                            "properties": {
                                              "include": {}
                                            }
                                          },
                                          "then": {
                                            "not": {
                                              "required": [
                                                "exclude"
                                              ]
                                            }
                                          }
                                        }
                                      ]
                                    },
                                    "actions": {
                                      "description": "Specifies a list of actions.",
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "additionalProperties": false,
                                        "properties": {
                                          "action": {
                                            "description": "Specifies an action to perform",
                                            "type": [
                                              "number",
                                              "string"
                                            ],
                                            "enum": [
                                              "ASN1ContentExtractor",
                                              "Base64Decode",
                                              "ConditionChecker",
                                              "CheckDataSize",
                                              "CheckMimeType",
                                              "JsonPathExtract",
                                              "JsonPathExtractToVars",
                                              "JsonValidation",
                                              "XsdValidation",
                                              "PostFormDataToFlateJson",
                                              "MultipartExtract",
                                              "SetMessageFromVar",
                                              "SetVarFromMessage",
                                              "JwsToJson",
                                              "XPathExtract",
                                              "XPathExtractToVars",
                                              "SharedMapDeleter",
                                              "SharedMapRemover",
                                              "SharedMapSetter",
                                              "SharedMapGetter",
                                              "RandomNumberToVar",
                                              "VarsToSharedMap",
                                              "SharedMapToVars",
                                              "AntivirusFileChecker",
                                              "MtomExtractor",
                                              "JsonTransformer",
                                              "SetVar",
                                              "GraphQLRequestValidation",
                                              "ProtobufValidation",
                                              "OpenApiValidation",
                                              "DelimiterSplitter",
                                              "VarsToFile",
                                              "FileToVars",
                                              "WsdlValidation",
                                              "HttpFilter",
                                              "ProtobufToJson",
                                              "FilterMds",
                                              "OcspSignValidator",
                                              "OcspToJson",
                                              "ASN1ToJson",
                                              "XmlTransformer",
                                              "UrlEncode",
                                              "UrlDecodeUni",
                                              "UrlDecode",
                                              "HexDecode",
                                              "HexEncode",
                                              "ToLowerCase",
                                              "ToUpperCase",
                                              "Utf8ToUnicode",
                                              "Trim",
                                              "ICAPFileChecker",
                                              "MessageToFile",
                                              "MultipartFormGenerateFromVar",
                                              "HttpSender",
                                              "MessageAccumulator",
                                              "MessageFromAccumulator",
                                              "MessageFromPattern",
                                              "MultipartFormGenerateFromMessage",
                                              "JsonPatchMessage",
                                              "JsonPatchVar",
                                              "DigestFromMessage",
                                              "Base64Encode",
                                              "HMac",
                                              "FileToMessage",
                                              "JwtVerifier",
                                              "CharsetChecker",
                                              "LdapSearch",
                                              "UnicodeDecode",
                                              "MessageMapper",
                                              "SimpleRateLimiter",
                                              "EventSourceConverter",
                                              "LazySessionTimeChecker",
                                              "CalculateMessageProperties"
                                            ]
                                          },
                                          "id": {
                                            "description": "An identificator of action",
                                            "type": [
                                              "number",
                                              "string"
                                            ]
                                          },
                                          "conditions": {
                                            "description": "Specifies the conditions for performina an action.",
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "additionalProperties": false,
                                              "properties": {
                                                "var": {
                                                  "description": "Specifies a variable to check.",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                },
                                                "operator": {
                                                  "description": "Specifies an operator.",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ],
                                                  "enum": [
                                                    "=",
                                                    "!=",
                                                    "<=",
                                                    ">=",
                                                    ">",
                                                    "<",
                                                    "in",
                                                    "not_in",
                                                    "~",
                                                    "~*",
                                                    "!~",
                                                    "!~*",
                                                    "ip_range",
                                                    "!ip_range",
                                                    "dn_mask",
                                                    "!dn_mask"
                                                  ]
                                                },
                                                "val": {
                                                  "description": "Specifies a value to check.",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "var",
                                                "operator",
                                                "val"
                                              ]
                                            }
                                          },
                                          "trace_config": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "enableAllActions": {
                                                "description": "enable tracing of all actions in chains",
                                                "type": "boolean"
                                              },
                                              "enableAllChains": {
                                                "description": "enable tracing of all actions in child chains",
                                                "type": "boolean"
                                              },
                                              "mode": {
                                                "description": "Enable or disable tracing at this level.",
                                                "type": "object",
                                                "additionalProperties": false,
                                                "properties": {
                                                  "enabled": {
                                                    "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                    "type": [
                                                      "number",
                                                      "string"
                                                    ],
                                                    "enum": [
                                                      "on",
                                                      "off",
                                                      "var_based"
                                                    ]
                                                  },
                                                  "var": {
                                                    "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                    "type": [
                                                      "number",
                                                      "string"
                                                    ]
                                                  }
                                                }
                                              },
                                              "spanAttributes": {
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "name": {
                                                      "description": "name of attribute",
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "value": {
                                                      "description": "value of attribute, can contain variables",
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    }
                                                  }
                                                }
                                              },
                                              "spanName": {
                                                "description": "Specify name of span",
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              },
                                              "enableSocketsTracing": {
                                                "description": "Enable or disable socket tracing, by default enabled",
                                                "type": "boolean"
                                              }
                                            }
                                          },
                                          "params": {
                                            "description": "Specifies extra parameters for the actions.",
                                            "type": "object",
                                            "additionalProperties": true
                                          },
                                          "requiredChildOneOf": {
                                            "description": "Specifies unverifed action check",
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "decision": {
                                                "type": [
                                                  "number",
                                                  "string"
                                                ],
                                                "enum": [
                                                  "BLOCK",
                                                  "WARN"
                                                ]
                                              },
                                              "onlyCheckers": {
                                                "type": "boolean"
                                              },
                                              "include": {
                                                "type": "array",
                                                "items": {
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                }
                                              },
                                              "exclude": {
                                                "type": "array",
                                                "items": {
                                                  "type": "string"
                                                }
                                              }
                                            },
                                            "required": [
                                              "decision"
                                            ],
                                            "allOf": [
                                              {
                                                "if": {
                                                  "type": "object",
                                                  "required": [
                                                    "exclude"
                                                  ],
                                                  "properties": {
                                                    "exclude": {}
                                                  }
                                                },
                                                "then": {
                                                  "not": {
                                                    "required": [
                                                      "include"
                                                    ]
                                                  }
                                                }
                                              },
                                              {
                                                "if": {
                                                  "type": "object",
                                                  "required": [
                                                    "include"
                                                  ],
                                                  "properties": {
                                                    "include": {}
                                                  }
                                                },
                                                "then": {
                                                  "not": {
                                                    "required": [
                                                      "exclude"
                                                    ]
                                                  }
                                                }
                                              }
                                            ]
                                          },
                                          "actions": {
                                            "description": "Specifies a list of actions.",
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "additionalProperties": false,
                                              "properties": {
                                                "action": {
                                                  "description": "Specifies an action to perform",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ],
                                                  "enum": [
                                                    "ASN1ContentExtractor",
                                                    "Base64Decode",
                                                    "ConditionChecker",
                                                    "CheckDataSize",
                                                    "CheckMimeType",
                                                    "JsonPathExtract",
                                                    "JsonPathExtractToVars",
                                                    "JsonValidation",
                                                    "XsdValidation",
                                                    "PostFormDataToFlateJson",
                                                    "MultipartExtract",
                                                    "SetMessageFromVar",
                                                    "SetVarFromMessage",
                                                    "JwsToJson",
                                                    "XPathExtract",
                                                    "XPathExtractToVars",
                                                    "SharedMapDeleter",
                                                    "SharedMapRemover",
                                                    "SharedMapSetter",
                                                    "SharedMapGetter",
                                                    "RandomNumberToVar",
                                                    "VarsToSharedMap",
                                                    "SharedMapToVars",
                                                    "AntivirusFileChecker",
                                                    "MtomExtractor",
                                                    "JsonTransformer",
                                                    "SetVar",
                                                    "GraphQLRequestValidation",
                                                    "ProtobufValidation",
                                                    "OpenApiValidation",
                                                    "DelimiterSplitter",
                                                    "VarsToFile",
                                                    "FileToVars",
                                                    "WsdlValidation",
                                                    "HttpFilter",
                                                    "ProtobufToJson",
                                                    "FilterMds",
                                                    "OcspSignValidator",
                                                    "OcspToJson",
                                                    "ASN1ToJson",
                                                    "XmlTransformer",
                                                    "UrlEncode",
                                                    "UrlDecodeUni",
                                                    "UrlDecode",
                                                    "HexDecode",
                                                    "HexEncode",
                                                    "ToLowerCase",
                                                    "ToUpperCase",
                                                    "Utf8ToUnicode",
                                                    "Trim",
                                                    "ICAPFileChecker",
                                                    "MessageToFile",
                                                    "MultipartFormGenerateFromVar",
                                                    "HttpSender",
                                                    "MessageAccumulator",
                                                    "MessageFromAccumulator",
                                                    "MessageFromPattern",
                                                    "MultipartFormGenerateFromMessage",
                                                    "JsonPatchMessage",
                                                    "JsonPatchVar",
                                                    "DigestFromMessage",
                                                    "Base64Encode",
                                                    "HMac",
                                                    "FileToMessage",
                                                    "JwtVerifier",
                                                    "CharsetChecker",
                                                    "LdapSearch",
                                                    "UnicodeDecode",
                                                    "MessageMapper",
                                                    "SimpleRateLimiter",
                                                    "EventSourceConverter",
                                                    "LazySessionTimeChecker",
                                                    "CalculateMessageProperties"
                                                  ]
                                                },
                                                "id": {
                                                  "description": "An identificator of action",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                },
                                                "conditions": {
                                                  "description": "Specifies the conditions for performina an action.",
                                                  "type": "array",
                                                  "items": {
                                                    "type": "object",
                                                    "additionalProperties": false,
                                                    "properties": {
                                                      "var": {
                                                        "description": "Specifies a variable to check.",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ]
                                                      },
                                                      "operator": {
                                                        "description": "Specifies an operator.",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ],
                                                        "enum": [
                                                          "=",
                                                          "!=",
                                                          "<=",
                                                          ">=",
                                                          ">",
                                                          "<",
                                                          "in",
                                                          "not_in",
                                                          "~",
                                                          "~*",
                                                          "!~",
                                                          "!~*",
                                                          "ip_range",
                                                          "!ip_range",
                                                          "dn_mask",
                                                          "!dn_mask"
                                                        ]
                                                      },
                                                      "val": {
                                                        "description": "Specifies a value to check.",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "var",
                                                      "operator",
                                                      "val"
                                                    ]
                                                  }
                                                },
                                                "trace_config": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "enableAllActions": {
                                                      "description": "enable tracing of all actions in chains",
                                                      "type": "boolean"
                                                    },
                                                    "enableAllChains": {
                                                      "description": "enable tracing of all actions in child chains",
                                                      "type": "boolean"
                                                    },
                                                    "mode": {
                                                      "description": "Enable or disable tracing at this level.",
                                                      "type": "object",
                                                      "additionalProperties": false,
                                                      "properties": {
                                                        "enabled": {
                                                          "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                          "type": [
                                                            "number",
                                                            "string"
                                                          ],
                                                          "enum": [
                                                            "on",
                                                            "off",
                                                            "var_based"
                                                          ]
                                                        },
                                                        "var": {
                                                          "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                          "type": [
                                                            "number",
                                                            "string"
                                                          ]
                                                        }
                                                      }
                                                    },
                                                    "spanAttributes": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "name": {
                                                            "description": "name of attribute",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "value": {
                                                            "description": "value of attribute, can contain variables",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          }
                                                        }
                                                      }
                                                    },
                                                    "spanName": {
                                                      "description": "Specify name of span",
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "enableSocketsTracing": {
                                                      "description": "Enable or disable socket tracing, by default enabled",
                                                      "type": "boolean"
                                                    }
                                                  }
                                                },
                                                "params": {
                                                  "description": "Specifies extra parameters for the actions.",
                                                  "type": "object",
                                                  "additionalProperties": true
                                                },
                                                "requiredChildOneOf": {
                                                  "description": "Specifies unverifed action check",
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "decision": {
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ],
                                                      "enum": [
                                                        "BLOCK",
                                                        "WARN"
                                                      ]
                                                    },
                                                    "onlyCheckers": {
                                                      "type": "boolean"
                                                    },
                                                    "include": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ]
                                                      }
                                                    },
                                                    "exclude": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "string"
                                                      }
                                                    }
                                                  },
                                                  "required": [
                                                    "decision"
                                                  ],
                                                  "allOf": [
                                                    {
                                                      "if": {
                                                        "type": "object",
                                                        "required": [
                                                          "exclude"
                                                        ],
                                                        "properties": {
                                                          "exclude": {}
                                                        }
                                                      },
                                                      "then": {
                                                        "not": {
                                                          "required": [
                                                            "include"
                                                          ]
                                                        }
                                                      }
                                                    },
                                                    {
                                                      "if": {
                                                        "type": "object",
                                                        "required": [
                                                          "include"
                                                        ],
                                                        "properties": {
                                                          "include": {}
                                                        }
                                                      },
                                                      "then": {
                                                        "not": {
                                                          "required": [
                                                            "exclude"
                                                          ]
                                                        }
                                                      }
                                                    }
                                                  ]
                                                },
                                                "actions": {
                                                  "description": "Specifies a list of actions.",
                                                  "type": "array",
                                                  "items": {
                                                    "type": "object",
                                                    "additionalProperties": false,
                                                    "properties": {
                                                      "action": {
                                                        "description": "Specifies an action to perform",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ],
                                                        "enum": [
                                                          "ASN1ContentExtractor",
                                                          "Base64Decode",
                                                          "ConditionChecker",
                                                          "CheckDataSize",
                                                          "CheckMimeType",
                                                          "JsonPathExtract",
                                                          "JsonPathExtractToVars",
                                                          "JsonValidation",
                                                          "XsdValidation",
                                                          "PostFormDataToFlateJson",
                                                          "MultipartExtract",
                                                          "SetMessageFromVar",
                                                          "SetVarFromMessage",
                                                          "JwsToJson",
                                                          "XPathExtract",
                                                          "XPathExtractToVars",
                                                          "SharedMapDeleter",
                                                          "SharedMapRemover",
                                                          "SharedMapSetter",
                                                          "SharedMapGetter",
                                                          "RandomNumberToVar",
                                                          "VarsToSharedMap",
                                                          "SharedMapToVars",
                                                          "AntivirusFileChecker",
                                                          "MtomExtractor",
                                                          "JsonTransformer",
                                                          "SetVar",
                                                          "GraphQLRequestValidation",
                                                          "ProtobufValidation",
                                                          "OpenApiValidation",
                                                          "DelimiterSplitter",
                                                          "VarsToFile",
                                                          "FileToVars",
                                                          "WsdlValidation",
                                                          "HttpFilter",
                                                          "ProtobufToJson",
                                                          "FilterMds",
                                                          "OcspSignValidator",
                                                          "OcspToJson",
                                                          "ASN1ToJson",
                                                          "XmlTransformer",
                                                          "UrlEncode",
                                                          "UrlDecodeUni",
                                                          "UrlDecode",
                                                          "HexDecode",
                                                          "HexEncode",
                                                          "ToLowerCase",
                                                          "ToUpperCase",
                                                          "Utf8ToUnicode",
                                                          "Trim",
                                                          "ICAPFileChecker",
                                                          "MessageToFile",
                                                          "MultipartFormGenerateFromVar",
                                                          "HttpSender",
                                                          "MessageAccumulator",
                                                          "MessageFromAccumulator",
                                                          "MessageFromPattern",
                                                          "MultipartFormGenerateFromMessage",
                                                          "JsonPatchMessage",
                                                          "JsonPatchVar",
                                                          "DigestFromMessage",
                                                          "Base64Encode",
                                                          "HMac",
                                                          "FileToMessage",
                                                          "JwtVerifier",
                                                          "CharsetChecker",
                                                          "LdapSearch",
                                                          "UnicodeDecode",
                                                          "MessageMapper",
                                                          "SimpleRateLimiter",
                                                          "EventSourceConverter",
                                                          "LazySessionTimeChecker",
                                                          "CalculateMessageProperties"
                                                        ]
                                                      },
                                                      "id": {
                                                        "description": "An identificator of action",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ]
                                                      },
                                                      "conditions": {
                                                        "description": "Specifies the conditions for performina an action.",
                                                        "type": "array",
                                                        "items": {
                                                          "type": "object",
                                                          "additionalProperties": false,
                                                          "properties": {
                                                            "var": {
                                                              "description": "Specifies a variable to check.",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ]
                                                            },
                                                            "operator": {
                                                              "description": "Specifies an operator.",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ],
                                                              "enum": [
                                                                "=",
                                                                "!=",
                                                                "<=",
                                                                ">=",
                                                                ">",
                                                                "<",
                                                                "in",
                                                                "not_in",
                                                                "~",
                                                                "~*",
                                                                "!~",
                                                                "!~*",
                                                                "ip_range",
                                                                "!ip_range",
                                                                "dn_mask",
                                                                "!dn_mask"
                                                              ]
                                                            },
                                                            "val": {
                                                              "description": "Specifies a value to check.",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ]
                                                            }
                                                          },
                                                          "required": [
                                                            "var",
                                                            "operator",
                                                            "val"
                                                          ]
                                                        }
                                                      },
                                                      "trace_config": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "enableAllActions": {
                                                            "description": "enable tracing of all actions in chains",
                                                            "type": "boolean"
                                                          },
                                                          "enableAllChains": {
                                                            "description": "enable tracing of all actions in child chains",
                                                            "type": "boolean"
                                                          },
                                                          "mode": {
                                                            "description": "Enable or disable tracing at this level.",
                                                            "type": "object",
                                                            "additionalProperties": false,
                                                            "properties": {
                                                              "enabled": {
                                                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                "type": [
                                                                  "number",
                                                                  "string"
                                                                ],
                                                                "enum": [
                                                                  "on",
                                                                  "off",
                                                                  "var_based"
                                                                ]
                                                              },
                                                              "var": {
                                                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                "type": [
                                                                  "number",
                                                                  "string"
                                                                ]
                                                              }
                                                            }
                                                          },
                                                          "spanAttributes": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "name": {
                                                                  "description": "name of attribute",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "value": {
                                                                  "description": "value of attribute, can contain variables",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                }
                                                              }
                                                            }
                                                          },
                                                          "spanName": {
                                                            "description": "Specify name of span",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "enableSocketsTracing": {
                                                            "description": "Enable or disable socket tracing, by default enabled",
                                                            "type": "boolean"
                                                          }
                                                        }
                                                      },
                                                      "params": {
                                                        "description": "Specifies extra parameters for the actions.",
                                                        "type": "object",
                                                        "additionalProperties": true
                                                      },
                                                      "requiredChildOneOf": {
                                                        "description": "Specifies unverifed action check",
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "decision": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ],
                                                            "enum": [
                                                              "BLOCK",
                                                              "WARN"
                                                            ]
                                                          },
                                                          "onlyCheckers": {
                                                            "type": "boolean"
                                                          },
                                                          "include": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ]
                                                            }
                                                          },
                                                          "exclude": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "decision"
                                                        ],
                                                        "allOf": [
                                                          {
                                                            "if": {
                                                              "type": "object",
                                                              "required": [
                                                                "exclude"
                                                              ],
                                                              "properties": {
                                                                "exclude": {}
                                                              }
                                                            },
                                                            "then": {
                                                              "not": {
                                                                "required": [
                                                                  "include"
                                                                ]
                                                              }
                                                            }
                                                          },
                                                          {
                                                            "if": {
                                                              "type": "object",
                                                              "required": [
                                                                "include"
                                                              ],
                                                              "properties": {
                                                                "include": {}
                                                              }
                                                            },
                                                            "then": {
                                                              "not": {
                                                                "required": [
                                                                  "exclude"
                                                                ]
                                                              }
                                                            }
                                                          }
                                                        ]
                                                      },
                                                      "actions": {
                                                        "description": "Specifies a list of actions.",
                                                        "type": "array",
                                                        "items": {
                                                          "type": "object",
                                                          "additionalProperties": false,
                                                          "properties": {
                                                            "action": {
                                                              "description": "Specifies an action to perform",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ],
                                                              "enum": [
                                                                "ASN1ContentExtractor",
                                                                "Base64Decode",
                                                                "ConditionChecker",
                                                                "CheckDataSize",
                                                                "CheckMimeType",
                                                                "JsonPathExtract",
                                                                "JsonPathExtractToVars",
                                                                "JsonValidation",
                                                                "XsdValidation",
                                                                "PostFormDataToFlateJson",
                                                                "MultipartExtract",
                                                                "SetMessageFromVar",
                                                                "SetVarFromMessage",
                                                                "JwsToJson",
                                                                "XPathExtract",
                                                                "XPathExtractToVars",
                                                                "SharedMapDeleter",
                                                                "SharedMapRemover",
                                                                "SharedMapSetter",
                                                                "SharedMapGetter",
                                                                "RandomNumberToVar",
                                                                "VarsToSharedMap",
                                                                "SharedMapToVars",
                                                                "AntivirusFileChecker",
                                                                "MtomExtractor",
                                                                "JsonTransformer",
                                                                "SetVar",
                                                                "GraphQLRequestValidation",
                                                                "ProtobufValidation",
                                                                "OpenApiValidation",
                                                                "DelimiterSplitter",
                                                                "VarsToFile",
                                                                "FileToVars",
                                                                "WsdlValidation",
                                                                "HttpFilter",
                                                                "ProtobufToJson",
                                                                "FilterMds",
                                                                "OcspSignValidator",
                                                                "OcspToJson",
                                                                "ASN1ToJson",
                                                                "XmlTransformer",
                                                                "UrlEncode",
                                                                "UrlDecodeUni",
                                                                "UrlDecode",
                                                                "HexDecode",
                                                                "HexEncode",
                                                                "ToLowerCase",
                                                                "ToUpperCase",
                                                                "Utf8ToUnicode",
                                                                "Trim",
                                                                "ICAPFileChecker",
                                                                "MessageToFile",
                                                                "MultipartFormGenerateFromVar",
                                                                "HttpSender",
                                                                "MessageAccumulator",
                                                                "MessageFromAccumulator",
                                                                "MessageFromPattern",
                                                                "MultipartFormGenerateFromMessage",
                                                                "JsonPatchMessage",
                                                                "JsonPatchVar",
                                                                "DigestFromMessage",
                                                                "Base64Encode",
                                                                "HMac",
                                                                "FileToMessage",
                                                                "JwtVerifier",
                                                                "CharsetChecker",
                                                                "LdapSearch",
                                                                "UnicodeDecode",
                                                                "MessageMapper",
                                                                "SimpleRateLimiter",
                                                                "EventSourceConverter",
                                                                "LazySessionTimeChecker",
                                                                "CalculateMessageProperties"
                                                              ]
                                                            },
                                                            "id": {
                                                              "description": "An identificator of action",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ]
                                                            },
                                                            "conditions": {
                                                              "description": "Specifies the conditions for performina an action.",
                                                              "type": "array",
                                                              "items": {
                                                                "type": "object",
                                                                "additionalProperties": false,
                                                                "properties": {
                                                                  "var": {
                                                                    "description": "Specifies a variable to check.",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ]
                                                                  },
                                                                  "operator": {
                                                                    "description": "Specifies an operator.",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ],
                                                                    "enum": [
                                                                      "=",
                                                                      "!=",
                                                                      "<=",
                                                                      ">=",
                                                                      ">",
                                                                      "<",
                                                                      "in",
                                                                      "not_in",
                                                                      "~",
                                                                      "~*",
                                                                      "!~",
                                                                      "!~*",
                                                                      "ip_range",
                                                                      "!ip_range",
                                                                      "dn_mask",
                                                                      "!dn_mask"
                                                                    ]
                                                                  },
                                                                  "val": {
                                                                    "description": "Specifies a value to check.",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ]
                                                                  }
                                                                },
                                                                "required": [
                                                                  "var",
                                                                  "operator",
                                                                  "val"
                                                                ]
                                                              }
                                                            },
                                                            "trace_config": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "enableAllActions": {
                                                                  "description": "enable tracing of all actions in chains",
                                                                  "type": "boolean"
                                                                },
                                                                "enableAllChains": {
                                                                  "description": "enable tracing of all actions in child chains",
                                                                  "type": "boolean"
                                                                },
                                                                "mode": {
                                                                  "description": "Enable or disable tracing at this level.",
                                                                  "type": "object",
                                                                  "additionalProperties": false,
                                                                  "properties": {
                                                                    "enabled": {
                                                                      "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                      "type": [
                                                                        "number",
                                                                        "string"
                                                                      ],
                                                                      "enum": [
                                                                        "on",
                                                                        "off",
                                                                        "var_based"
                                                                      ]
                                                                    },
                                                                    "var": {
                                                                      "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                      "type": [
                                                                        "number",
                                                                        "string"
                                                                      ]
                                                                    }
                                                                  }
                                                                },
                                                                "spanAttributes": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "name": {
                                                                        "description": "name of attribute",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "value": {
                                                                        "description": "value of attribute, can contain variables",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      }
                                                                    }
                                                                  }
                                                                },
                                                                "spanName": {
                                                                  "description": "Specify name of span",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "enableSocketsTracing": {
                                                                  "description": "Enable or disable socket tracing, by default enabled",
                                                                  "type": "boolean"
                                                                }
                                                              }
                                                            },
                                                            "params": {
                                                              "description": "Specifies extra parameters for the actions.",
                                                              "type": "object",
                                                              "additionalProperties": true
                                                            },
                                                            "requiredChildOneOf": {
                                                              "description": "Specifies unverifed action check",
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "decision": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ],
                                                                  "enum": [
                                                                    "BLOCK",
                                                                    "WARN"
                                                                  ]
                                                                },
                                                                "onlyCheckers": {
                                                                  "type": "boolean"
                                                                },
                                                                "include": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ]
                                                                  }
                                                                },
                                                                "exclude": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "string"
                                                                  }
                                                                }
                                                              },
                                                              "required": [
                                                                "decision"
                                                              ],
                                                              "allOf": [
                                                                {
                                                                  "if": {
                                                                    "type": "object",
                                                                    "required": [
                                                                      "exclude"
                                                                    ],
                                                                    "properties": {
                                                                      "exclude": {}
                                                                    }
                                                                  },
                                                                  "then": {
                                                                    "not": {
                                                                      "required": [
                                                                        "include"
                                                                      ]
                                                                    }
                                                                  }
                                                                },
                                                                {
                                                                  "if": {
                                                                    "type": "object",
                                                                    "required": [
                                                                      "include"
                                                                    ],
                                                                    "properties": {
                                                                      "include": {}
                                                                    }
                                                                  },
                                                                  "then": {
                                                                    "not": {
                                                                      "required": [
                                                                        "exclude"
                                                                      ]
                                                                    }
                                                                  }
                                                                }
                                                              ]
                                                            },
                                                            "actions": {
                                                              "description": "Specifies a list of actions.",
                                                              "type": "array",
                                                              "items": {
                                                                "type": "object",
                                                                "additionalProperties": false,
                                                                "properties": {
                                                                  "action": {
                                                                    "description": "Specifies an action to perform",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ],
                                                                    "enum": [
                                                                      "ASN1ContentExtractor",
                                                                      "Base64Decode",
                                                                      "ConditionChecker",
                                                                      "CheckDataSize",
                                                                      "CheckMimeType",
                                                                      "JsonPathExtract",
                                                                      "JsonPathExtractToVars",
                                                                      "JsonValidation",
                                                                      "XsdValidation",
                                                                      "PostFormDataToFlateJson",
                                                                      "MultipartExtract",
                                                                      "SetMessageFromVar",
                                                                      "SetVarFromMessage",
                                                                      "JwsToJson",
                                                                      "XPathExtract",
                                                                      "XPathExtractToVars",
                                                                      "SharedMapDeleter",
                                                                      "SharedMapRemover",
                                                                      "SharedMapSetter",
                                                                      "SharedMapGetter",
                                                                      "RandomNumberToVar",
                                                                      "VarsToSharedMap",
                                                                      "SharedMapToVars",
                                                                      "AntivirusFileChecker",
                                                                      "MtomExtractor",
                                                                      "JsonTransformer",
                                                                      "SetVar",
                                                                      "GraphQLRequestValidation",
                                                                      "ProtobufValidation",
                                                                      "OpenApiValidation",
                                                                      "DelimiterSplitter",
                                                                      "VarsToFile",
                                                                      "FileToVars",
                                                                      "WsdlValidation",
                                                                      "HttpFilter",
                                                                      "ProtobufToJson",
                                                                      "FilterMds",
                                                                      "OcspSignValidator",
                                                                      "OcspToJson",
                                                                      "ASN1ToJson",
                                                                      "XmlTransformer",
                                                                      "UrlEncode",
                                                                      "UrlDecodeUni",
                                                                      "UrlDecode",
                                                                      "HexDecode",
                                                                      "HexEncode",
                                                                      "ToLowerCase",
                                                                      "ToUpperCase",
                                                                      "Utf8ToUnicode",
                                                                      "Trim",
                                                                      "ICAPFileChecker",
                                                                      "MessageToFile",
                                                                      "MultipartFormGenerateFromVar",
                                                                      "HttpSender",
                                                                      "MessageAccumulator",
                                                                      "MessageFromAccumulator",
                                                                      "MessageFromPattern",
                                                                      "MultipartFormGenerateFromMessage",
                                                                      "JsonPatchMessage",
                                                                      "JsonPatchVar",
                                                                      "DigestFromMessage",
                                                                      "Base64Encode",
                                                                      "HMac",
                                                                      "FileToMessage",
                                                                      "JwtVerifier",
                                                                      "CharsetChecker",
                                                                      "LdapSearch",
                                                                      "UnicodeDecode",
                                                                      "MessageMapper",
                                                                      "SimpleRateLimiter",
                                                                      "EventSourceConverter",
                                                                      "LazySessionTimeChecker",
                                                                      "CalculateMessageProperties"
                                                                    ]
                                                                  },
                                                                  "id": {
                                                                    "description": "An identificator of action",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ]
                                                                  },
                                                                  "conditions": {
                                                                    "description": "Specifies the conditions for performina an action.",
                                                                    "type": "array",
                                                                    "items": {
                                                                      "type": "object",
                                                                      "additionalProperties": false,
                                                                      "properties": {
                                                                        "var": {
                                                                          "description": "Specifies a variable to check.",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ]
                                                                        },
                                                                        "operator": {
                                                                          "description": "Specifies an operator.",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ],
                                                                          "enum": [
                                                                            "=",
                                                                            "!=",
                                                                            "<=",
                                                                            ">=",
                                                                            ">",
                                                                            "<",
                                                                            "in",
                                                                            "not_in",
                                                                            "~",
                                                                            "~*",
                                                                            "!~",
                                                                            "!~*",
                                                                            "ip_range",
                                                                            "!ip_range",
                                                                            "dn_mask",
                                                                            "!dn_mask"
                                                                          ]
                                                                        },
                                                                        "val": {
                                                                          "description": "Specifies a value to check.",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "required": [
                                                                        "var",
                                                                        "operator",
                                                                        "val"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "trace_config": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "enableAllActions": {
                                                                        "description": "enable tracing of all actions in chains",
                                                                        "type": "boolean"
                                                                      },
                                                                      "enableAllChains": {
                                                                        "description": "enable tracing of all actions in child chains",
                                                                        "type": "boolean"
                                                                      },
                                                                      "mode": {
                                                                        "description": "Enable or disable tracing at this level.",
                                                                        "type": "object",
                                                                        "additionalProperties": false,
                                                                        "properties": {
                                                                          "enabled": {
                                                                            "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                            "type": [
                                                                              "number",
                                                                              "string"
                                                                            ],
                                                                            "enum": [
                                                                              "on",
                                                                              "off",
                                                                              "var_based"
                                                                            ]
                                                                          },
                                                                          "var": {
                                                                            "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                            "type": [
                                                                              "number",
                                                                              "string"
                                                                            ]
                                                                          }
                                                                        }
                                                                      },
                                                                      "spanAttributes": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "name": {
                                                                              "description": "name of attribute",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "value": {
                                                                              "description": "value of attribute, can contain variables",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            }
                                                                          }
                                                                        }
                                                                      },
                                                                      "spanName": {
                                                                        "description": "Specify name of span",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "enableSocketsTracing": {
                                                                        "description": "Enable or disable socket tracing, by default enabled",
                                                                        "type": "boolean"
                                                                      }
                                                                    }
                                                                  },
                                                                  "params": {
                                                                    "description": "Specifies extra parameters for the actions.",
                                                                    "type": "object",
                                                                    "additionalProperties": true
                                                                  },
                                                                  "requiredChildOneOf": {
                                                                    "description": "Specifies unverifed action check",
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "decision": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ],
                                                                        "enum": [
                                                                          "BLOCK",
                                                                          "WARN"
                                                                        ]
                                                                      },
                                                                      "onlyCheckers": {
                                                                        "type": "boolean"
                                                                      },
                                                                      "include": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "exclude": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "string"
                                                                        }
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "decision"
                                                                    ],
                                                                    "allOf": [
                                                                      {
                                                                        "if": {
                                                                          "type": "object",
                                                                          "required": [
                                                                            "exclude"
                                                                          ],
                                                                          "properties": {
                                                                            "exclude": {}
                                                                          }
                                                                        },
                                                                        "then": {
                                                                          "not": {
                                                                            "required": [
                                                                              "include"
                                                                            ]
                                                                          }
                                                                        }
                                                                      },
                                                                      {
                                                                        "if": {
                                                                          "type": "object",
                                                                          "required": [
                                                                            "include"
                                                                          ],
                                                                          "properties": {
                                                                            "include": {}
                                                                          }
                                                                        },
                                                                        "then": {
                                                                          "not": {
                                                                            "required": [
                                                                              "exclude"
                                                                            ]
                                                                          }
                                                                        }
                                                                      }
                                                                    ]
                                                                  },
                                                                  "actions": {
                                                                    "description": "Specifies a list of actions.",
                                                                    "type": "array",
                                                                    "items": {
                                                                      "type": "object",
                                                                      "additionalProperties": false,
                                                                      "properties": {
                                                                        "action": {
                                                                          "description": "Specifies an action to perform",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ],
                                                                          "enum": [
                                                                            "ASN1ContentExtractor",
                                                                            "Base64Decode",
                                                                            "ConditionChecker",
                                                                            "CheckDataSize",
                                                                            "CheckMimeType",
                                                                            "JsonPathExtract",
                                                                            "JsonPathExtractToVars",
                                                                            "JsonValidation",
                                                                            "XsdValidation",
                                                                            "PostFormDataToFlateJson",
                                                                            "MultipartExtract",
                                                                            "SetMessageFromVar",
                                                                            "SetVarFromMessage",
                                                                            "JwsToJson",
                                                                            "XPathExtract",
                                                                            "XPathExtractToVars",
                                                                            "SharedMapDeleter",
                                                                            "SharedMapRemover",
                                                                            "SharedMapSetter",
                                                                            "SharedMapGetter",
                                                                            "RandomNumberToVar",
                                                                            "VarsToSharedMap",
                                                                            "SharedMapToVars",
                                                                            "AntivirusFileChecker",
                                                                            "MtomExtractor",
                                                                            "JsonTransformer",
                                                                            "SetVar",
                                                                            "GraphQLRequestValidation",
                                                                            "ProtobufValidation",
                                                                            "OpenApiValidation",
                                                                            "DelimiterSplitter",
                                                                            "VarsToFile",
                                                                            "FileToVars",
                                                                            "WsdlValidation",
                                                                            "HttpFilter",
                                                                            "ProtobufToJson",
                                                                            "FilterMds",
                                                                            "OcspSignValidator",
                                                                            "OcspToJson",
                                                                            "ASN1ToJson",
                                                                            "XmlTransformer",
                                                                            "UrlEncode",
                                                                            "UrlDecodeUni",
                                                                            "UrlDecode",
                                                                            "HexDecode",
                                                                            "HexEncode",
                                                                            "ToLowerCase",
                                                                            "ToUpperCase",
                                                                            "Utf8ToUnicode",
                                                                            "Trim",
                                                                            "ICAPFileChecker",
                                                                            "MessageToFile",
                                                                            "MultipartFormGenerateFromVar",
                                                                            "HttpSender",
                                                                            "MessageAccumulator",
                                                                            "MessageFromAccumulator",
                                                                            "MessageFromPattern",
                                                                            "MultipartFormGenerateFromMessage",
                                                                            "JsonPatchMessage",
                                                                            "JsonPatchVar",
                                                                            "DigestFromMessage",
                                                                            "Base64Encode",
                                                                            "HMac",
                                                                            "FileToMessage",
                                                                            "JwtVerifier",
                                                                            "CharsetChecker",
                                                                            "LdapSearch",
                                                                            "UnicodeDecode",
                                                                            "MessageMapper",
                                                                            "SimpleRateLimiter",
                                                                            "EventSourceConverter",
                                                                            "LazySessionTimeChecker",
                                                                            "CalculateMessageProperties"
                                                                          ]
                                                                        },
                                                                        "id": {
                                                                          "description": "An identificator of action",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ]
                                                                        },
                                                                        "conditions": {
                                                                          "description": "Specifies the conditions for performina an action.",
                                                                          "type": "array",
                                                                          "items": {
                                                                            "type": "object",
                                                                            "additionalProperties": false,
                                                                            "properties": {
                                                                              "var": {
                                                                                "description": "Specifies a variable to check.",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ]
                                                                              },
                                                                              "operator": {
                                                                                "description": "Specifies an operator.",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ],
                                                                                "enum": [
                                                                                  "=",
                                                                                  "!=",
                                                                                  "<=",
                                                                                  ">=",
                                                                                  ">",
                                                                                  "<",
                                                                                  "in",
                                                                                  "not_in",
                                                                                  "~",
                                                                                  "~*",
                                                                                  "!~",
                                                                                  "!~*",
                                                                                  "ip_range",
                                                                                  "!ip_range",
                                                                                  "dn_mask",
                                                                                  "!dn_mask"
                                                                                ]
                                                                              },
                                                                              "val": {
                                                                                "description": "Specifies a value to check.",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ]
                                                                              }
                                                                            },
                                                                            "required": [
                                                                              "var",
                                                                              "operator",
                                                                              "val"
                                                                            ]
                                                                          }
                                                                        },
                                                                        "trace_config": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "enableAllActions": {
                                                                              "description": "enable tracing of all actions in chains",
                                                                              "type": "boolean"
                                                                            },
                                                                            "enableAllChains": {
                                                                              "description": "enable tracing of all actions in child chains",
                                                                              "type": "boolean"
                                                                            },
                                                                            "mode": {
                                                                              "description": "Enable or disable tracing at this level.",
                                                                              "type": "object",
                                                                              "additionalProperties": false,
                                                                              "properties": {
                                                                                "enabled": {
                                                                                  "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                  "type": [
                                                                                    "number",
                                                                                    "string"
                                                                                  ],
                                                                                  "enum": [
                                                                                    "on",
                                                                                    "off",
                                                                                    "var_based"
                                                                                  ]
                                                                                },
                                                                                "var": {
                                                                                  "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                  "type": [
                                                                                    "number",
                                                                                    "string"
                                                                                  ]
                                                                                }
                                                                              }
                                                                            },
                                                                            "spanAttributes": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "name": {
                                                                                    "description": "name of attribute",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "value": {
                                                                                    "description": "value of attribute, can contain variables",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  }
                                                                                }
                                                                              }
                                                                            },
                                                                            "spanName": {
                                                                              "description": "Specify name of span",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "enableSocketsTracing": {
                                                                              "description": "Enable or disable socket tracing, by default enabled",
                                                                              "type": "boolean"
                                                                            }
                                                                          }
                                                                        },
                                                                        "params": {
                                                                          "description": "Specifies extra parameters for the actions.",
                                                                          "type": "object",
                                                                          "additionalProperties": true
                                                                        },
                                                                        "requiredChildOneOf": {
                                                                          "description": "Specifies unverifed action check",
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "decision": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ],
                                                                              "enum": [
                                                                                "BLOCK",
                                                                                "WARN"
                                                                              ]
                                                                            },
                                                                            "onlyCheckers": {
                                                                              "type": "boolean"
                                                                            },
                                                                            "include": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ]
                                                                              }
                                                                            },
                                                                            "exclude": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "string"
                                                                              }
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "decision"
                                                                          ],
                                                                          "allOf": [
                                                                            {
                                                                              "if": {
                                                                                "type": "object",
                                                                                "required": [
                                                                                  "exclude"
                                                                                ],
                                                                                "properties": {
                                                                                  "exclude": {}
                                                                                }
                                                                              },
                                                                              "then": {
                                                                                "not": {
                                                                                  "required": [
                                                                                    "include"
                                                                                  ]
                                                                                }
                                                                              }
                                                                            },
                                                                            {
                                                                              "if": {
                                                                                "type": "object",
                                                                                "required": [
                                                                                  "include"
                                                                                ],
                                                                                "properties": {
                                                                                  "include": {}
                                                                                }
                                                                              },
                                                                              "then": {
                                                                                "not": {
                                                                                  "required": [
                                                                                    "exclude"
                                                                                  ]
                                                                                }
                                                                              }
                                                                            }
                                                                          ]
                                                                        },
                                                                        "actions": {
                                                                          "description": "Specifies a list of actions.",
                                                                          "type": "array",
                                                                          "items": {
                                                                            "type": "object",
                                                                            "additionalProperties": false,
                                                                            "properties": {
                                                                              "action": {
                                                                                "description": "Specifies an action to perform",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ],
                                                                                "enum": [
                                                                                  "ASN1ContentExtractor",
                                                                                  "Base64Decode",
                                                                                  "ConditionChecker",
                                                                                  "CheckDataSize",
                                                                                  "CheckMimeType",
                                                                                  "JsonPathExtract",
                                                                                  "JsonPathExtractToVars",
                                                                                  "JsonValidation",
                                                                                  "XsdValidation",
                                                                                  "PostFormDataToFlateJson",
                                                                                  "MultipartExtract",
                                                                                  "SetMessageFromVar",
                                                                                  "SetVarFromMessage",
                                                                                  "JwsToJson",
                                                                                  "XPathExtract",
                                                                                  "XPathExtractToVars",
                                                                                  "SharedMapDeleter",
                                                                                  "SharedMapRemover",
                                                                                  "SharedMapSetter",
                                                                                  "SharedMapGetter",
                                                                                  "RandomNumberToVar",
                                                                                  "VarsToSharedMap",
                                                                                  "SharedMapToVars",
                                                                                  "AntivirusFileChecker",
                                                                                  "MtomExtractor",
                                                                                  "JsonTransformer",
                                                                                  "SetVar",
                                                                                  "GraphQLRequestValidation",
                                                                                  "ProtobufValidation",
                                                                                  "OpenApiValidation",
                                                                                  "DelimiterSplitter",
                                                                                  "VarsToFile",
                                                                                  "FileToVars",
                                                                                  "WsdlValidation",
                                                                                  "HttpFilter",
                                                                                  "ProtobufToJson",
                                                                                  "FilterMds",
                                                                                  "OcspSignValidator",
                                                                                  "OcspToJson",
                                                                                  "ASN1ToJson",
                                                                                  "XmlTransformer",
                                                                                  "UrlEncode",
                                                                                  "UrlDecodeUni",
                                                                                  "UrlDecode",
                                                                                  "HexDecode",
                                                                                  "HexEncode",
                                                                                  "ToLowerCase",
                                                                                  "ToUpperCase",
                                                                                  "Utf8ToUnicode",
                                                                                  "Trim",
                                                                                  "ICAPFileChecker",
                                                                                  "MessageToFile",
                                                                                  "MultipartFormGenerateFromVar",
                                                                                  "HttpSender",
                                                                                  "MessageAccumulator",
                                                                                  "MessageFromAccumulator",
                                                                                  "MessageFromPattern",
                                                                                  "MultipartFormGenerateFromMessage",
                                                                                  "JsonPatchMessage",
                                                                                  "JsonPatchVar",
                                                                                  "DigestFromMessage",
                                                                                  "Base64Encode",
                                                                                  "HMac",
                                                                                  "FileToMessage",
                                                                                  "JwtVerifier",
                                                                                  "CharsetChecker",
                                                                                  "LdapSearch",
                                                                                  "UnicodeDecode",
                                                                                  "MessageMapper",
                                                                                  "SimpleRateLimiter",
                                                                                  "EventSourceConverter",
                                                                                  "LazySessionTimeChecker",
                                                                                  "CalculateMessageProperties"
                                                                                ]
                                                                              },
                                                                              "id": {
                                                                                "description": "An identificator of action",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ]
                                                                              },
                                                                              "conditions": {
                                                                                "description": "Specifies the conditions for performina an action.",
                                                                                "type": "array",
                                                                                "items": {
                                                                                  "type": "object",
                                                                                  "additionalProperties": false,
                                                                                  "properties": {
                                                                                    "var": {
                                                                                      "description": "Specifies a variable to check.",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ]
                                                                                    },
                                                                                    "operator": {
                                                                                      "description": "Specifies an operator.",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ],
                                                                                      "enum": [
                                                                                        "=",
                                                                                        "!=",
                                                                                        "<=",
                                                                                        ">=",
                                                                                        ">",
                                                                                        "<",
                                                                                        "in",
                                                                                        "not_in",
                                                                                        "~",
                                                                                        "~*",
                                                                                        "!~",
                                                                                        "!~*",
                                                                                        "ip_range",
                                                                                        "!ip_range",
                                                                                        "dn_mask",
                                                                                        "!dn_mask"
                                                                                      ]
                                                                                    },
                                                                                    "val": {
                                                                                      "description": "Specifies a value to check.",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ]
                                                                                    }
                                                                                  },
                                                                                  "required": [
                                                                                    "var",
                                                                                    "operator",
                                                                                    "val"
                                                                                  ]
                                                                                }
                                                                              },
                                                                              "trace_config": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "enableAllActions": {
                                                                                    "description": "enable tracing of all actions in chains",
                                                                                    "type": "boolean"
                                                                                  },
                                                                                  "enableAllChains": {
                                                                                    "description": "enable tracing of all actions in child chains",
                                                                                    "type": "boolean"
                                                                                  },
                                                                                  "mode": {
                                                                                    "description": "Enable or disable tracing at this level.",
                                                                                    "type": "object",
                                                                                    "additionalProperties": false,
                                                                                    "properties": {
                                                                                      "enabled": {
                                                                                        "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                        "type": [
                                                                                          "number",
                                                                                          "string"
                                                                                        ],
                                                                                        "enum": [
                                                                                          "on",
                                                                                          "off",
                                                                                          "var_based"
                                                                                        ]
                                                                                      },
                                                                                      "var": {
                                                                                        "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                        "type": [
                                                                                          "number",
                                                                                          "string"
                                                                                        ]
                                                                                      }
                                                                                    }
                                                                                  },
                                                                                  "spanAttributes": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "name": {
                                                                                          "description": "name of attribute",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "value": {
                                                                                          "description": "value of attribute, can contain variables",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        }
                                                                                      }
                                                                                    }
                                                                                  },
                                                                                  "spanName": {
                                                                                    "description": "Specify name of span",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "enableSocketsTracing": {
                                                                                    "description": "Enable or disable socket tracing, by default enabled",
                                                                                    "type": "boolean"
                                                                                  }
                                                                                }
                                                                              },
                                                                              "params": {
                                                                                "description": "Specifies extra parameters for the actions.",
                                                                                "type": "object",
                                                                                "additionalProperties": true
                                                                              },
                                                                              "requiredChildOneOf": {
                                                                                "description": "Specifies unverifed action check",
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "decision": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ],
                                                                                    "enum": [
                                                                                      "BLOCK",
                                                                                      "WARN"
                                                                                    ]
                                                                                  },
                                                                                  "onlyCheckers": {
                                                                                    "type": "boolean"
                                                                                  },
                                                                                  "include": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ]
                                                                                    }
                                                                                  },
                                                                                  "exclude": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "string"
                                                                                    }
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "decision"
                                                                                ],
                                                                                "allOf": [
                                                                                  {
                                                                                    "if": {
                                                                                      "type": "object",
                                                                                      "required": [
                                                                                        "exclude"
                                                                                      ],
                                                                                      "properties": {
                                                                                        "exclude": {}
                                                                                      }
                                                                                    },
                                                                                    "then": {
                                                                                      "not": {
                                                                                        "required": [
                                                                                          "include"
                                                                                        ]
                                                                                      }
                                                                                    }
                                                                                  },
                                                                                  {
                                                                                    "if": {
                                                                                      "type": "object",
                                                                                      "required": [
                                                                                        "include"
                                                                                      ],
                                                                                      "properties": {
                                                                                        "include": {}
                                                                                      }
                                                                                    },
                                                                                    "then": {
                                                                                      "not": {
                                                                                        "required": [
                                                                                          "exclude"
                                                                                        ]
                                                                                      }
                                                                                    }
                                                                                  }
                                                                                ]
                                                                              },
                                                                              "actions": {
                                                                                "description": "Specifies a list of actions.",
                                                                                "type": "array",
                                                                                "items": {
                                                                                  "type": "object",
                                                                                  "additionalProperties": false,
                                                                                  "properties": {
                                                                                    "action": {
                                                                                      "description": "Specifies an action to perform",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ],
                                                                                      "enum": [
                                                                                        "ASN1ContentExtractor",
                                                                                        "Base64Decode",
                                                                                        "ConditionChecker",
                                                                                        "CheckDataSize",
                                                                                        "CheckMimeType",
                                                                                        "JsonPathExtract",
                                                                                        "JsonPathExtractToVars",
                                                                                        "JsonValidation",
                                                                                        "XsdValidation",
                                                                                        "PostFormDataToFlateJson",
                                                                                        "MultipartExtract",
                                                                                        "SetMessageFromVar",
                                                                                        "SetVarFromMessage",
                                                                                        "JwsToJson",
                                                                                        "XPathExtract",
                                                                                        "XPathExtractToVars",
                                                                                        "SharedMapDeleter",
                                                                                        "SharedMapRemover",
                                                                                        "SharedMapSetter",
                                                                                        "SharedMapGetter",
                                                                                        "RandomNumberToVar",
                                                                                        "VarsToSharedMap",
                                                                                        "SharedMapToVars",
                                                                                        "AntivirusFileChecker",
                                                                                        "MtomExtractor",
                                                                                        "JsonTransformer",
                                                                                        "SetVar",
                                                                                        "GraphQLRequestValidation",
                                                                                        "ProtobufValidation",
                                                                                        "OpenApiValidation",
                                                                                        "DelimiterSplitter",
                                                                                        "VarsToFile",
                                                                                        "FileToVars",
                                                                                        "WsdlValidation",
                                                                                        "HttpFilter",
                                                                                        "ProtobufToJson",
                                                                                        "FilterMds",
                                                                                        "OcspSignValidator",
                                                                                        "OcspToJson",
                                                                                        "ASN1ToJson",
                                                                                        "XmlTransformer",
                                                                                        "UrlEncode",
                                                                                        "UrlDecodeUni",
                                                                                        "UrlDecode",
                                                                                        "HexDecode",
                                                                                        "HexEncode",
                                                                                        "ToLowerCase",
                                                                                        "ToUpperCase",
                                                                                        "Utf8ToUnicode",
                                                                                        "Trim",
                                                                                        "ICAPFileChecker",
                                                                                        "MessageToFile",
                                                                                        "MultipartFormGenerateFromVar",
                                                                                        "HttpSender",
                                                                                        "MessageAccumulator",
                                                                                        "MessageFromAccumulator",
                                                                                        "MessageFromPattern",
                                                                                        "MultipartFormGenerateFromMessage",
                                                                                        "JsonPatchMessage",
                                                                                        "JsonPatchVar",
                                                                                        "DigestFromMessage",
                                                                                        "Base64Encode",
                                                                                        "HMac",
                                                                                        "FileToMessage",
                                                                                        "JwtVerifier",
                                                                                        "CharsetChecker",
                                                                                        "LdapSearch",
                                                                                        "UnicodeDecode",
                                                                                        "MessageMapper",
                                                                                        "SimpleRateLimiter",
                                                                                        "EventSourceConverter",
                                                                                        "LazySessionTimeChecker",
                                                                                        "CalculateMessageProperties"
                                                                                      ]
                                                                                    },
                                                                                    "id": {
                                                                                      "description": "An identificator of action",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ]
                                                                                    },
                                                                                    "conditions": {
                                                                                      "description": "Specifies the conditions for performina an action.",
                                                                                      "type": "array",
                                                                                      "items": {
                                                                                        "type": "object",
                                                                                        "additionalProperties": false,
                                                                                        "properties": {
                                                                                          "var": {
                                                                                            "description": "Specifies a variable to check.",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ]
                                                                                          },
                                                                                          "operator": {
                                                                                            "description": "Specifies an operator.",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ],
                                                                                            "enum": [
                                                                                              "=",
                                                                                              "!=",
                                                                                              "<=",
                                                                                              ">=",
                                                                                              ">",
                                                                                              "<",
                                                                                              "in",
                                                                                              "not_in",
                                                                                              "~",
                                                                                              "~*",
                                                                                              "!~",
                                                                                              "!~*",
                                                                                              "ip_range",
                                                                                              "!ip_range",
                                                                                              "dn_mask",
                                                                                              "!dn_mask"
                                                                                            ]
                                                                                          },
                                                                                          "val": {
                                                                                            "description": "Specifies a value to check.",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ]
                                                                                          }
                                                                                        },
                                                                                        "required": [
                                                                                          "var",
                                                                                          "operator",
                                                                                          "val"
                                                                                        ]
                                                                                      }
                                                                                    },
                                                                                    "trace_config": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "enableAllActions": {
                                                                                          "description": "enable tracing of all actions in chains",
                                                                                          "type": "boolean"
                                                                                        },
                                                                                        "enableAllChains": {
                                                                                          "description": "enable tracing of all actions in child chains",
                                                                                          "type": "boolean"
                                                                                        },
                                                                                        "mode": {
                                                                                          "description": "Enable or disable tracing at this level.",
                                                                                          "type": "object",
                                                                                          "additionalProperties": false,
                                                                                          "properties": {
                                                                                            "enabled": {
                                                                                              "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                              "type": [
                                                                                                "number",
                                                                                                "string"
                                                                                              ],
                                                                                              "enum": [
                                                                                                "on",
                                                                                                "off",
                                                                                                "var_based"
                                                                                              ]
                                                                                            },
                                                                                            "var": {
                                                                                              "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                              "type": [
                                                                                                "number",
                                                                                                "string"
                                                                                              ]
                                                                                            }
                                                                                          }
                                                                                        },
                                                                                        "spanAttributes": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "name": {
                                                                                                "description": "name of attribute",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "value": {
                                                                                                "description": "value of attribute, can contain variables",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              }
                                                                                            }
                                                                                          }
                                                                                        },
                                                                                        "spanName": {
                                                                                          "description": "Specify name of span",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "enableSocketsTracing": {
                                                                                          "description": "Enable or disable socket tracing, by default enabled",
                                                                                          "type": "boolean"
                                                                                        }
                                                                                      }
                                                                                    },
                                                                                    "params": {
                                                                                      "description": "Specifies extra parameters for the actions.",
                                                                                      "type": "object",
                                                                                      "additionalProperties": true
                                                                                    },
                                                                                    "requiredChildOneOf": {
                                                                                      "description": "Specifies unverifed action check",
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "decision": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ],
                                                                                          "enum": [
                                                                                            "BLOCK",
                                                                                            "WARN"
                                                                                          ]
                                                                                        },
                                                                                        "onlyCheckers": {
                                                                                          "type": "boolean"
                                                                                        },
                                                                                        "include": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ]
                                                                                          }
                                                                                        },
                                                                                        "exclude": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "string"
                                                                                          }
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "decision"
                                                                                      ],
                                                                                      "allOf": [
                                                                                        {
                                                                                          "if": {
                                                                                            "type": "object",
                                                                                            "required": [
                                                                                              "exclude"
                                                                                            ],
                                                                                            "properties": {
                                                                                              "exclude": {}
                                                                                            }
                                                                                          },
                                                                                          "then": {
                                                                                            "not": {
                                                                                              "required": [
                                                                                                "include"
                                                                                              ]
                                                                                            }
                                                                                          }
                                                                                        },
                                                                                        {
                                                                                          "if": {
                                                                                            "type": "object",
                                                                                            "required": [
                                                                                              "include"
                                                                                            ],
                                                                                            "properties": {
                                                                                              "include": {}
                                                                                            }
                                                                                          },
                                                                                          "then": {
                                                                                            "not": {
                                                                                              "required": [
                                                                                                "exclude"
                                                                                              ]
                                                                                            }
                                                                                          }
                                                                                        }
                                                                                      ]
                                                                                    },
                                                                                    "actions": {
                                                                                      "description": "Specifies a list of actions.",
                                                                                      "type": "array",
                                                                                      "items": {
                                                                                        "type": "object",
                                                                                        "additionalProperties": false,
                                                                                        "properties": {
                                                                                          "action": {
                                                                                            "description": "Specifies an action to perform",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ],
                                                                                            "enum": [
                                                                                              "ASN1ContentExtractor",
                                                                                              "Base64Decode",
                                                                                              "ConditionChecker",
                                                                                              "CheckDataSize",
                                                                                              "CheckMimeType",
                                                                                              "JsonPathExtract",
                                                                                              "JsonPathExtractToVars",
                                                                                              "JsonValidation",
                                                                                              "XsdValidation",
                                                                                              "PostFormDataToFlateJson",
                                                                                              "MultipartExtract",
                                                                                              "SetMessageFromVar",
                                                                                              "SetVarFromMessage",
                                                                                              "JwsToJson",
                                                                                              "XPathExtract",
                                                                                              "XPathExtractToVars",
                                                                                              "SharedMapDeleter",
                                                                                              "SharedMapRemover",
                                                                                              "SharedMapSetter",
                                                                                              "SharedMapGetter",
                                                                                              "RandomNumberToVar",
                                                                                              "VarsToSharedMap",
                                                                                              "SharedMapToVars",
                                                                                              "AntivirusFileChecker",
                                                                                              "MtomExtractor",
                                                                                              "JsonTransformer",
                                                                                              "SetVar",
                                                                                              "GraphQLRequestValidation",
                                                                                              "ProtobufValidation",
                                                                                              "OpenApiValidation",
                                                                                              "DelimiterSplitter",
                                                                                              "VarsToFile",
                                                                                              "FileToVars",
                                                                                              "WsdlValidation",
                                                                                              "HttpFilter",
                                                                                              "ProtobufToJson",
                                                                                              "FilterMds",
                                                                                              "OcspSignValidator",
                                                                                              "OcspToJson",
                                                                                              "ASN1ToJson",
                                                                                              "XmlTransformer",
                                                                                              "UrlEncode",
                                                                                              "UrlDecodeUni",
                                                                                              "UrlDecode",
                                                                                              "HexDecode",
                                                                                              "HexEncode",
                                                                                              "ToLowerCase",
                                                                                              "ToUpperCase",
                                                                                              "Utf8ToUnicode",
                                                                                              "Trim",
                                                                                              "ICAPFileChecker",
                                                                                              "MessageToFile",
                                                                                              "MultipartFormGenerateFromVar",
                                                                                              "HttpSender",
                                                                                              "MessageAccumulator",
                                                                                              "MessageFromAccumulator",
                                                                                              "MessageFromPattern",
                                                                                              "MultipartFormGenerateFromMessage",
                                                                                              "JsonPatchMessage",
                                                                                              "JsonPatchVar",
                                                                                              "DigestFromMessage",
                                                                                              "Base64Encode",
                                                                                              "HMac",
                                                                                              "FileToMessage",
                                                                                              "JwtVerifier",
                                                                                              "CharsetChecker",
                                                                                              "LdapSearch",
                                                                                              "UnicodeDecode",
                                                                                              "MessageMapper",
                                                                                              "SimpleRateLimiter",
                                                                                              "EventSourceConverter",
                                                                                              "LazySessionTimeChecker",
                                                                                              "CalculateMessageProperties"
                                                                                            ]
                                                                                          },
                                                                                          "id": {
                                                                                            "description": "An identificator of action",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ]
                                                                                          },
                                                                                          "conditions": {
                                                                                            "description": "Specifies the conditions for performina an action.",
                                                                                            "type": "array",
                                                                                            "items": {
                                                                                              "type": "object",
                                                                                              "additionalProperties": false,
                                                                                              "properties": {
                                                                                                "var": {
                                                                                                  "description": "Specifies a variable to check.",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ]
                                                                                                },
                                                                                                "operator": {
                                                                                                  "description": "Specifies an operator.",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ],
                                                                                                  "enum": [
                                                                                                    "=",
                                                                                                    "!=",
                                                                                                    "<=",
                                                                                                    ">=",
                                                                                                    ">",
                                                                                                    "<",
                                                                                                    "in",
                                                                                                    "not_in",
                                                                                                    "~",
                                                                                                    "~*",
                                                                                                    "!~",
                                                                                                    "!~*",
                                                                                                    "ip_range",
                                                                                                    "!ip_range",
                                                                                                    "dn_mask",
                                                                                                    "!dn_mask"
                                                                                                  ]
                                                                                                },
                                                                                                "val": {
                                                                                                  "description": "Specifies a value to check.",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ]
                                                                                                }
                                                                                              },
                                                                                              "required": [
                                                                                                "var",
                                                                                                "operator",
                                                                                                "val"
                                                                                              ]
                                                                                            }
                                                                                          },
                                                                                          "trace_config": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "enableAllActions": {
                                                                                                "description": "enable tracing of all actions in chains",
                                                                                                "type": "boolean"
                                                                                              },
                                                                                              "enableAllChains": {
                                                                                                "description": "enable tracing of all actions in child chains",
                                                                                                "type": "boolean"
                                                                                              },
                                                                                              "mode": {
                                                                                                "description": "Enable or disable tracing at this level.",
                                                                                                "type": "object",
                                                                                                "additionalProperties": false,
                                                                                                "properties": {
                                                                                                  "enabled": {
                                                                                                    "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                    "type": [
                                                                                                      "number",
                                                                                                      "string"
                                                                                                    ],
                                                                                                    "enum": [
                                                                                                      "on",
                                                                                                      "off",
                                                                                                      "var_based"
                                                                                                    ]
                                                                                                  },
                                                                                                  "var": {
                                                                                                    "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                    "type": [
                                                                                                      "number",
                                                                                                      "string"
                                                                                                    ]
                                                                                                  }
                                                                                                }
                                                                                              },
                                                                                              "spanAttributes": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "name": {
                                                                                                      "description": "name of attribute",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "value": {
                                                                                                      "description": "value of attribute, can contain variables",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    }
                                                                                                  }
                                                                                                }
                                                                                              },
                                                                                              "spanName": {
                                                                                                "description": "Specify name of span",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "enableSocketsTracing": {
                                                                                                "description": "Enable or disable socket tracing, by default enabled",
                                                                                                "type": "boolean"
                                                                                              }
                                                                                            }
                                                                                          },
                                                                                          "params": {
                                                                                            "description": "Specifies extra parameters for the actions.",
                                                                                            "type": "object",
                                                                                            "additionalProperties": true
                                                                                          },
                                                                                          "requiredChildOneOf": {
                                                                                            "description": "Specifies unverifed action check",
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "decision": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ],
                                                                                                "enum": [
                                                                                                  "BLOCK",
                                                                                                  "WARN"
                                                                                                ]
                                                                                              },
                                                                                              "onlyCheckers": {
                                                                                                "type": "boolean"
                                                                                              },
                                                                                              "include": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ]
                                                                                                }
                                                                                              },
                                                                                              "exclude": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "string"
                                                                                                }
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "decision"
                                                                                            ],
                                                                                            "allOf": [
                                                                                              {
                                                                                                "if": {
                                                                                                  "type": "object",
                                                                                                  "required": [
                                                                                                    "exclude"
                                                                                                  ],
                                                                                                  "properties": {
                                                                                                    "exclude": {}
                                                                                                  }
                                                                                                },
                                                                                                "then": {
                                                                                                  "not": {
                                                                                                    "required": [
                                                                                                      "include"
                                                                                                    ]
                                                                                                  }
                                                                                                }
                                                                                              },
                                                                                              {
                                                                                                "if": {
                                                                                                  "type": "object",
                                                                                                  "required": [
                                                                                                    "include"
                                                                                                  ],
                                                                                                  "properties": {
                                                                                                    "include": {}
                                                                                                  }
                                                                                                },
                                                                                                "then": {
                                                                                                  "not": {
                                                                                                    "required": [
                                                                                                      "exclude"
                                                                                                    ]
                                                                                                  }
                                                                                                }
                                                                                              }
                                                                                            ]
                                                                                          },
                                                                                          "actions": {
                                                                                            "description": "Specifies a list of actions.",
                                                                                            "type": "array",
                                                                                            "items": {
                                                                                              "type": "object",
                                                                                              "additionalProperties": false,
                                                                                              "properties": {
                                                                                                "action": {
                                                                                                  "description": "Specifies an action to perform",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ],
                                                                                                  "enum": [
                                                                                                    "ASN1ContentExtractor",
                                                                                                    "Base64Decode",
                                                                                                    "ConditionChecker",
                                                                                                    "CheckDataSize",
                                                                                                    "CheckMimeType",
                                                                                                    "JsonPathExtract",
                                                                                                    "JsonPathExtractToVars",
                                                                                                    "JsonValidation",
                                                                                                    "XsdValidation",
                                                                                                    "PostFormDataToFlateJson",
                                                                                                    "MultipartExtract",
                                                                                                    "SetMessageFromVar",
                                                                                                    "SetVarFromMessage",
                                                                                                    "JwsToJson",
                                                                                                    "XPathExtract",
                                                                                                    "XPathExtractToVars",
                                                                                                    "SharedMapDeleter",
                                                                                                    "SharedMapRemover",
                                                                                                    "SharedMapSetter",
                                                                                                    "SharedMapGetter",
                                                                                                    "RandomNumberToVar",
                                                                                                    "VarsToSharedMap",
                                                                                                    "SharedMapToVars",
                                                                                                    "AntivirusFileChecker",
                                                                                                    "MtomExtractor",
                                                                                                    "JsonTransformer",
                                                                                                    "SetVar",
                                                                                                    "GraphQLRequestValidation",
                                                                                                    "ProtobufValidation",
                                                                                                    "OpenApiValidation",
                                                                                                    "DelimiterSplitter",
                                                                                                    "VarsToFile",
                                                                                                    "FileToVars",
                                                                                                    "WsdlValidation",
                                                                                                    "HttpFilter",
                                                                                                    "ProtobufToJson",
                                                                                                    "FilterMds",
                                                                                                    "OcspSignValidator",
                                                                                                    "OcspToJson",
                                                                                                    "ASN1ToJson",
                                                                                                    "XmlTransformer",
                                                                                                    "UrlEncode",
                                                                                                    "UrlDecodeUni",
                                                                                                    "UrlDecode",
                                                                                                    "HexDecode",
                                                                                                    "HexEncode",
                                                                                                    "ToLowerCase",
                                                                                                    "ToUpperCase",
                                                                                                    "Utf8ToUnicode",
                                                                                                    "Trim",
                                                                                                    "ICAPFileChecker",
                                                                                                    "MessageToFile",
                                                                                                    "MultipartFormGenerateFromVar",
                                                                                                    "HttpSender",
                                                                                                    "MessageAccumulator",
                                                                                                    "MessageFromAccumulator",
                                                                                                    "MessageFromPattern",
                                                                                                    "MultipartFormGenerateFromMessage",
                                                                                                    "JsonPatchMessage",
                                                                                                    "JsonPatchVar",
                                                                                                    "DigestFromMessage",
                                                                                                    "Base64Encode",
                                                                                                    "HMac",
                                                                                                    "FileToMessage",
                                                                                                    "JwtVerifier",
                                                                                                    "CharsetChecker",
                                                                                                    "LdapSearch",
                                                                                                    "UnicodeDecode",
                                                                                                    "MessageMapper",
                                                                                                    "SimpleRateLimiter",
                                                                                                    "EventSourceConverter",
                                                                                                    "LazySessionTimeChecker",
                                                                                                    "CalculateMessageProperties"
                                                                                                  ]
                                                                                                },
                                                                                                "id": {
                                                                                                  "description": "An identificator of action",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ]
                                                                                                },
                                                                                                "conditions": {
                                                                                                  "description": "Specifies the conditions for performina an action.",
                                                                                                  "type": "array",
                                                                                                  "items": {
                                                                                                    "type": "object",
                                                                                                    "additionalProperties": false,
                                                                                                    "properties": {
                                                                                                      "var": {
                                                                                                        "description": "Specifies a variable to check.",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ]
                                                                                                      },
                                                                                                      "operator": {
                                                                                                        "description": "Specifies an operator.",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ],
                                                                                                        "enum": [
                                                                                                          "=",
                                                                                                          "!=",
                                                                                                          "<=",
                                                                                                          ">=",
                                                                                                          ">",
                                                                                                          "<",
                                                                                                          "in",
                                                                                                          "not_in",
                                                                                                          "~",
                                                                                                          "~*",
                                                                                                          "!~",
                                                                                                          "!~*",
                                                                                                          "ip_range",
                                                                                                          "!ip_range",
                                                                                                          "dn_mask",
                                                                                                          "!dn_mask"
                                                                                                        ]
                                                                                                      },
                                                                                                      "val": {
                                                                                                        "description": "Specifies a value to check.",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ]
                                                                                                      }
                                                                                                    },
                                                                                                    "required": [
                                                                                                      "var",
                                                                                                      "operator",
                                                                                                      "val"
                                                                                                    ]
                                                                                                  }
                                                                                                },
                                                                                                "trace_config": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "enableAllActions": {
                                                                                                      "description": "enable tracing of all actions in chains",
                                                                                                      "type": "boolean"
                                                                                                    },
                                                                                                    "enableAllChains": {
                                                                                                      "description": "enable tracing of all actions in child chains",
                                                                                                      "type": "boolean"
                                                                                                    },
                                                                                                    "mode": {
                                                                                                      "description": "Enable or disable tracing at this level.",
                                                                                                      "type": "object",
                                                                                                      "additionalProperties": false,
                                                                                                      "properties": {
                                                                                                        "enabled": {
                                                                                                          "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                          "type": [
                                                                                                            "number",
                                                                                                            "string"
                                                                                                          ],
                                                                                                          "enum": [
                                                                                                            "on",
                                                                                                            "off",
                                                                                                            "var_based"
                                                                                                          ]
                                                                                                        },
                                                                                                        "var": {
                                                                                                          "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                          "type": [
                                                                                                            "number",
                                                                                                            "string"
                                                                                                          ]
                                                                                                        }
                                                                                                      }
                                                                                                    },
                                                                                                    "spanAttributes": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "name": {
                                                                                                            "description": "name of attribute",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "value": {
                                                                                                            "description": "value of attribute, can contain variables",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          }
                                                                                                        }
                                                                                                      }
                                                                                                    },
                                                                                                    "spanName": {
                                                                                                      "description": "Specify name of span",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "enableSocketsTracing": {
                                                                                                      "description": "Enable or disable socket tracing, by default enabled",
                                                                                                      "type": "boolean"
                                                                                                    }
                                                                                                  }
                                                                                                },
                                                                                                "params": {
                                                                                                  "description": "Specifies extra parameters for the actions.",
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": true
                                                                                                },
                                                                                                "requiredChildOneOf": {
                                                                                                  "description": "Specifies unverifed action check",
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "decision": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ],
                                                                                                      "enum": [
                                                                                                        "BLOCK",
                                                                                                        "WARN"
                                                                                                      ]
                                                                                                    },
                                                                                                    "onlyCheckers": {
                                                                                                      "type": "boolean"
                                                                                                    },
                                                                                                    "include": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ]
                                                                                                      }
                                                                                                    },
                                                                                                    "exclude": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "string"
                                                                                                      }
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "decision"
                                                                                                  ],
                                                                                                  "allOf": [
                                                                                                    {
                                                                                                      "if": {
                                                                                                        "type": "object",
                                                                                                        "required": [
                                                                                                          "exclude"
                                                                                                        ],
                                                                                                        "properties": {
                                                                                                          "exclude": {}
                                                                                                        }
                                                                                                      },
                                                                                                      "then": {
                                                                                                        "not": {
                                                                                                          "required": [
                                                                                                            "include"
                                                                                                          ]
                                                                                                        }
                                                                                                      }
                                                                                                    },
                                                                                                    {
                                                                                                      "if": {
                                                                                                        "type": "object",
                                                                                                        "required": [
                                                                                                          "include"
                                                                                                        ],
                                                                                                        "properties": {
                                                                                                          "include": {}
                                                                                                        }
                                                                                                      },
                                                                                                      "then": {
                                                                                                        "not": {
                                                                                                          "required": [
                                                                                                            "exclude"
                                                                                                          ]
                                                                                                        }
                                                                                                      }
                                                                                                    }
                                                                                                  ]
                                                                                                },
                                                                                                "actions": {
                                                                                                  "description": "Specifies a list of actions.",
                                                                                                  "type": "array",
                                                                                                  "items": {
                                                                                                    "type": "object",
                                                                                                    "additionalProperties": false,
                                                                                                    "properties": {
                                                                                                      "action": {
                                                                                                        "description": "Specifies an action to perform",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ],
                                                                                                        "enum": [
                                                                                                          "ASN1ContentExtractor",
                                                                                                          "Base64Decode",
                                                                                                          "ConditionChecker",
                                                                                                          "CheckDataSize",
                                                                                                          "CheckMimeType",
                                                                                                          "JsonPathExtract",
                                                                                                          "JsonPathExtractToVars",
                                                                                                          "JsonValidation",
                                                                                                          "XsdValidation",
                                                                                                          "PostFormDataToFlateJson",
                                                                                                          "MultipartExtract",
                                                                                                          "SetMessageFromVar",
                                                                                                          "SetVarFromMessage",
                                                                                                          "JwsToJson",
                                                                                                          "XPathExtract",
                                                                                                          "XPathExtractToVars",
                                                                                                          "SharedMapDeleter",
                                                                                                          "SharedMapRemover",
                                                                                                          "SharedMapSetter",
                                                                                                          "SharedMapGetter",
                                                                                                          "RandomNumberToVar",
                                                                                                          "VarsToSharedMap",
                                                                                                          "SharedMapToVars",
                                                                                                          "AntivirusFileChecker",
                                                                                                          "MtomExtractor",
                                                                                                          "JsonTransformer",
                                                                                                          "SetVar",
                                                                                                          "GraphQLRequestValidation",
                                                                                                          "ProtobufValidation",
                                                                                                          "OpenApiValidation",
                                                                                                          "DelimiterSplitter",
                                                                                                          "VarsToFile",
                                                                                                          "FileToVars",
                                                                                                          "WsdlValidation",
                                                                                                          "HttpFilter",
                                                                                                          "ProtobufToJson",
                                                                                                          "FilterMds",
                                                                                                          "OcspSignValidator",
                                                                                                          "OcspToJson",
                                                                                                          "ASN1ToJson",
                                                                                                          "XmlTransformer",
                                                                                                          "UrlEncode",
                                                                                                          "UrlDecodeUni",
                                                                                                          "UrlDecode",
                                                                                                          "HexDecode",
                                                                                                          "HexEncode",
                                                                                                          "ToLowerCase",
                                                                                                          "ToUpperCase",
                                                                                                          "Utf8ToUnicode",
                                                                                                          "Trim",
                                                                                                          "ICAPFileChecker",
                                                                                                          "MessageToFile",
                                                                                                          "MultipartFormGenerateFromVar",
                                                                                                          "HttpSender",
                                                                                                          "MessageAccumulator",
                                                                                                          "MessageFromAccumulator",
                                                                                                          "MessageFromPattern",
                                                                                                          "MultipartFormGenerateFromMessage",
                                                                                                          "JsonPatchMessage",
                                                                                                          "JsonPatchVar",
                                                                                                          "DigestFromMessage",
                                                                                                          "Base64Encode",
                                                                                                          "HMac",
                                                                                                          "FileToMessage",
                                                                                                          "JwtVerifier",
                                                                                                          "CharsetChecker",
                                                                                                          "LdapSearch",
                                                                                                          "UnicodeDecode",
                                                                                                          "MessageMapper",
                                                                                                          "SimpleRateLimiter",
                                                                                                          "EventSourceConverter",
                                                                                                          "LazySessionTimeChecker",
                                                                                                          "CalculateMessageProperties"
                                                                                                        ]
                                                                                                      },
                                                                                                      "id": {
                                                                                                        "description": "An identificator of action",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ]
                                                                                                      },
                                                                                                      "conditions": {
                                                                                                        "description": "Specifies the conditions for performina an action.",
                                                                                                        "type": "array",
                                                                                                        "items": {
                                                                                                          "type": "object",
                                                                                                          "additionalProperties": false,
                                                                                                          "properties": {
                                                                                                            "var": {
                                                                                                              "description": "Specifies a variable to check.",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ]
                                                                                                            },
                                                                                                            "operator": {
                                                                                                              "description": "Specifies an operator.",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ],
                                                                                                              "enum": [
                                                                                                                "=",
                                                                                                                "!=",
                                                                                                                "<=",
                                                                                                                ">=",
                                                                                                                ">",
                                                                                                                "<",
                                                                                                                "in",
                                                                                                                "not_in",
                                                                                                                "~",
                                                                                                                "~*",
                                                                                                                "!~",
                                                                                                                "!~*",
                                                                                                                "ip_range",
                                                                                                                "!ip_range",
                                                                                                                "dn_mask",
                                                                                                                "!dn_mask"
                                                                                                              ]
                                                                                                            },
                                                                                                            "val": {
                                                                                                              "description": "Specifies a value to check.",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ]
                                                                                                            }
                                                                                                          },
                                                                                                          "required": [
                                                                                                            "var",
                                                                                                            "operator",
                                                                                                            "val"
                                                                                                          ]
                                                                                                        }
                                                                                                      },
                                                                                                      "trace_config": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "enableAllActions": {
                                                                                                            "description": "enable tracing of all actions in chains",
                                                                                                            "type": "boolean"
                                                                                                          },
                                                                                                          "enableAllChains": {
                                                                                                            "description": "enable tracing of all actions in child chains",
                                                                                                            "type": "boolean"
                                                                                                          },
                                                                                                          "mode": {
                                                                                                            "description": "Enable or disable tracing at this level.",
                                                                                                            "type": "object",
                                                                                                            "additionalProperties": false,
                                                                                                            "properties": {
                                                                                                              "enabled": {
                                                                                                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                "type": [
                                                                                                                  "number",
                                                                                                                  "string"
                                                                                                                ],
                                                                                                                "enum": [
                                                                                                                  "on",
                                                                                                                  "off",
                                                                                                                  "var_based"
                                                                                                                ]
                                                                                                              },
                                                                                                              "var": {
                                                                                                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                "type": [
                                                                                                                  "number",
                                                                                                                  "string"
                                                                                                                ]
                                                                                                              }
                                                                                                            }
                                                                                                          },
                                                                                                          "spanAttributes": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "name": {
                                                                                                                  "description": "name of attribute",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "value": {
                                                                                                                  "description": "value of attribute, can contain variables",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                }
                                                                                                              }
                                                                                                            }
                                                                                                          },
                                                                                                          "spanName": {
                                                                                                            "description": "Specify name of span",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "enableSocketsTracing": {
                                                                                                            "description": "Enable or disable socket tracing, by default enabled",
                                                                                                            "type": "boolean"
                                                                                                          }
                                                                                                        }
                                                                                                      },
                                                                                                      "params": {
                                                                                                        "description": "Specifies extra parameters for the actions.",
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": true
                                                                                                      },
                                                                                                      "requiredChildOneOf": {
                                                                                                        "description": "Specifies unverifed action check",
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "decision": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ],
                                                                                                            "enum": [
                                                                                                              "BLOCK",
                                                                                                              "WARN"
                                                                                                            ]
                                                                                                          },
                                                                                                          "onlyCheckers": {
                                                                                                            "type": "boolean"
                                                                                                          },
                                                                                                          "include": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ]
                                                                                                            }
                                                                                                          },
                                                                                                          "exclude": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "string"
                                                                                                            }
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "decision"
                                                                                                        ],
                                                                                                        "allOf": [
                                                                                                          {
                                                                                                            "if": {
                                                                                                              "type": "object",
                                                                                                              "required": [
                                                                                                                "exclude"
                                                                                                              ],
                                                                                                              "properties": {
                                                                                                                "exclude": {}
                                                                                                              }
                                                                                                            },
                                                                                                            "then": {
                                                                                                              "not": {
                                                                                                                "required": [
                                                                                                                  "include"
                                                                                                                ]
                                                                                                              }
                                                                                                            }
                                                                                                          },
                                                                                                          {
                                                                                                            "if": {
                                                                                                              "type": "object",
                                                                                                              "required": [
                                                                                                                "include"
                                                                                                              ],
                                                                                                              "properties": {
                                                                                                                "include": {}
                                                                                                              }
                                                                                                            },
                                                                                                            "then": {
                                                                                                              "not": {
                                                                                                                "required": [
                                                                                                                  "exclude"
                                                                                                                ]
                                                                                                              }
                                                                                                            }
                                                                                                          }
                                                                                                        ]
                                                                                                      },
                                                                                                      "actions": {
                                                                                                        "description": "Specifies a list of actions.",
                                                                                                        "type": "array",
                                                                                                        "items": {
                                                                                                          "type": "object",
                                                                                                          "additionalProperties": false,
                                                                                                          "properties": {
                                                                                                            "action": {
                                                                                                              "description": "Specifies an action to perform",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ],
                                                                                                              "enum": [
                                                                                                                "ASN1ContentExtractor",
                                                                                                                "Base64Decode",
                                                                                                                "ConditionChecker",
                                                                                                                "CheckDataSize",
                                                                                                                "CheckMimeType",
                                                                                                                "JsonPathExtract",
                                                                                                                "JsonPathExtractToVars",
                                                                                                                "JsonValidation",
                                                                                                                "XsdValidation",
                                                                                                                "PostFormDataToFlateJson",
                                                                                                                "MultipartExtract",
                                                                                                                "SetMessageFromVar",
                                                                                                                "SetVarFromMessage",
                                                                                                                "JwsToJson",
                                                                                                                "XPathExtract",
                                                                                                                "XPathExtractToVars",
                                                                                                                "SharedMapDeleter",
                                                                                                                "SharedMapRemover",
                                                                                                                "SharedMapSetter",
                                                                                                                "SharedMapGetter",
                                                                                                                "RandomNumberToVar",
                                                                                                                "VarsToSharedMap",
                                                                                                                "SharedMapToVars",
                                                                                                                "AntivirusFileChecker",
                                                                                                                "MtomExtractor",
                                                                                                                "JsonTransformer",
                                                                                                                "SetVar",
                                                                                                                "GraphQLRequestValidation",
                                                                                                                "ProtobufValidation",
                                                                                                                "OpenApiValidation",
                                                                                                                "DelimiterSplitter",
                                                                                                                "VarsToFile",
                                                                                                                "FileToVars",
                                                                                                                "WsdlValidation",
                                                                                                                "HttpFilter",
                                                                                                                "ProtobufToJson",
                                                                                                                "FilterMds",
                                                                                                                "OcspSignValidator",
                                                                                                                "OcspToJson",
                                                                                                                "ASN1ToJson",
                                                                                                                "XmlTransformer",
                                                                                                                "UrlEncode",
                                                                                                                "UrlDecodeUni",
                                                                                                                "UrlDecode",
                                                                                                                "HexDecode",
                                                                                                                "HexEncode",
                                                                                                                "ToLowerCase",
                                                                                                                "ToUpperCase",
                                                                                                                "Utf8ToUnicode",
                                                                                                                "Trim",
                                                                                                                "ICAPFileChecker",
                                                                                                                "MessageToFile",
                                                                                                                "MultipartFormGenerateFromVar",
                                                                                                                "HttpSender",
                                                                                                                "MessageAccumulator",
                                                                                                                "MessageFromAccumulator",
                                                                                                                "MessageFromPattern",
                                                                                                                "MultipartFormGenerateFromMessage",
                                                                                                                "JsonPatchMessage",
                                                                                                                "JsonPatchVar",
                                                                                                                "DigestFromMessage",
                                                                                                                "Base64Encode",
                                                                                                                "HMac",
                                                                                                                "FileToMessage",
                                                                                                                "JwtVerifier",
                                                                                                                "CharsetChecker",
                                                                                                                "LdapSearch",
                                                                                                                "UnicodeDecode",
                                                                                                                "MessageMapper",
                                                                                                                "SimpleRateLimiter",
                                                                                                                "EventSourceConverter",
                                                                                                                "LazySessionTimeChecker",
                                                                                                                "CalculateMessageProperties"
                                                                                                              ]
                                                                                                            },
                                                                                                            "id": {
                                                                                                              "description": "An identificator of action",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ]
                                                                                                            },
                                                                                                            "conditions": {
                                                                                                              "description": "Specifies the conditions for performina an action.",
                                                                                                              "type": "array",
                                                                                                              "items": {
                                                                                                                "type": "object",
                                                                                                                "additionalProperties": false,
                                                                                                                "properties": {
                                                                                                                  "var": {
                                                                                                                    "description": "Specifies a variable to check.",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "operator": {
                                                                                                                    "description": "Specifies an operator.",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ],
                                                                                                                    "enum": [
                                                                                                                      "=",
                                                                                                                      "!=",
                                                                                                                      "<=",
                                                                                                                      ">=",
                                                                                                                      ">",
                                                                                                                      "<",
                                                                                                                      "in",
                                                                                                                      "not_in",
                                                                                                                      "~",
                                                                                                                      "~*",
                                                                                                                      "!~",
                                                                                                                      "!~*",
                                                                                                                      "ip_range",
                                                                                                                      "!ip_range",
                                                                                                                      "dn_mask",
                                                                                                                      "!dn_mask"
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "val": {
                                                                                                                    "description": "Specifies a value to check.",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                },
                                                                                                                "required": [
                                                                                                                  "var",
                                                                                                                  "operator",
                                                                                                                  "val"
                                                                                                                ]
                                                                                                              }
                                                                                                            },
                                                                                                            "trace_config": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "enableAllActions": {
                                                                                                                  "description": "enable tracing of all actions in chains",
                                                                                                                  "type": "boolean"
                                                                                                                },
                                                                                                                "enableAllChains": {
                                                                                                                  "description": "enable tracing of all actions in child chains",
                                                                                                                  "type": "boolean"
                                                                                                                },
                                                                                                                "mode": {
                                                                                                                  "description": "Enable or disable tracing at this level.",
                                                                                                                  "type": "object",
                                                                                                                  "additionalProperties": false,
                                                                                                                  "properties": {
                                                                                                                    "enabled": {
                                                                                                                      "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                      "type": [
                                                                                                                        "number",
                                                                                                                        "string"
                                                                                                                      ],
                                                                                                                      "enum": [
                                                                                                                        "on",
                                                                                                                        "off",
                                                                                                                        "var_based"
                                                                                                                      ]
                                                                                                                    },
                                                                                                                    "var": {
                                                                                                                      "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                      "type": [
                                                                                                                        "number",
                                                                                                                        "string"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  }
                                                                                                                },
                                                                                                                "spanAttributes": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "name": {
                                                                                                                        "description": "name of attribute",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "value": {
                                                                                                                        "description": "value of attribute, can contain variables",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      }
                                                                                                                    }
                                                                                                                  }
                                                                                                                },
                                                                                                                "spanName": {
                                                                                                                  "description": "Specify name of span",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "enableSocketsTracing": {
                                                                                                                  "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                  "type": "boolean"
                                                                                                                }
                                                                                                              }
                                                                                                            },
                                                                                                            "params": {
                                                                                                              "description": "Specifies extra parameters for the actions.",
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": true
                                                                                                            },
                                                                                                            "requiredChildOneOf": {
                                                                                                              "description": "Specifies unverifed action check",
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "decision": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ],
                                                                                                                  "enum": [
                                                                                                                    "BLOCK",
                                                                                                                    "WARN"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "onlyCheckers": {
                                                                                                                  "type": "boolean"
                                                                                                                },
                                                                                                                "include": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                },
                                                                                                                "exclude": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "string"
                                                                                                                  }
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "decision"
                                                                                                              ],
                                                                                                              "allOf": [
                                                                                                                {
                                                                                                                  "if": {
                                                                                                                    "type": "object",
                                                                                                                    "required": [
                                                                                                                      "exclude"
                                                                                                                    ],
                                                                                                                    "properties": {
                                                                                                                      "exclude": {}
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "then": {
                                                                                                                    "not": {
                                                                                                                      "required": [
                                                                                                                        "include"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  }
                                                                                                                },
                                                                                                                {
                                                                                                                  "if": {
                                                                                                                    "type": "object",
                                                                                                                    "required": [
                                                                                                                      "include"
                                                                                                                    ],
                                                                                                                    "properties": {
                                                                                                                      "include": {}
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "then": {
                                                                                                                    "not": {
                                                                                                                      "required": [
                                                                                                                        "exclude"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  }
                                                                                                                }
                                                                                                              ]
                                                                                                            },
                                                                                                            "actions": {
                                                                                                              "description": "Specifies a list of actions.",
                                                                                                              "type": "array",
                                                                                                              "items": {
                                                                                                                "type": "object",
                                                                                                                "additionalProperties": false,
                                                                                                                "properties": {
                                                                                                                  "action": {
                                                                                                                    "description": "Specifies an action to perform",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ],
                                                                                                                    "enum": [
                                                                                                                      "ASN1ContentExtractor",
                                                                                                                      "Base64Decode",
                                                                                                                      "ConditionChecker",
                                                                                                                      "CheckDataSize",
                                                                                                                      "CheckMimeType",
                                                                                                                      "JsonPathExtract",
                                                                                                                      "JsonPathExtractToVars",
                                                                                                                      "JsonValidation",
                                                                                                                      "XsdValidation",
                                                                                                                      "PostFormDataToFlateJson",
                                                                                                                      "MultipartExtract",
                                                                                                                      "SetMessageFromVar",
                                                                                                                      "SetVarFromMessage",
                                                                                                                      "JwsToJson",
                                                                                                                      "XPathExtract",
                                                                                                                      "XPathExtractToVars",
                                                                                                                      "SharedMapDeleter",
                                                                                                                      "SharedMapRemover",
                                                                                                                      "SharedMapSetter",
                                                                                                                      "SharedMapGetter",
                                                                                                                      "RandomNumberToVar",
                                                                                                                      "VarsToSharedMap",
                                                                                                                      "SharedMapToVars",
                                                                                                                      "AntivirusFileChecker",
                                                                                                                      "MtomExtractor",
                                                                                                                      "JsonTransformer",
                                                                                                                      "SetVar",
                                                                                                                      "GraphQLRequestValidation",
                                                                                                                      "ProtobufValidation",
                                                                                                                      "OpenApiValidation",
                                                                                                                      "DelimiterSplitter",
                                                                                                                      "VarsToFile",
                                                                                                                      "FileToVars",
                                                                                                                      "WsdlValidation",
                                                                                                                      "HttpFilter",
                                                                                                                      "ProtobufToJson",
                                                                                                                      "FilterMds",
                                                                                                                      "OcspSignValidator",
                                                                                                                      "OcspToJson",
                                                                                                                      "ASN1ToJson",
                                                                                                                      "XmlTransformer",
                                                                                                                      "UrlEncode",
                                                                                                                      "UrlDecodeUni",
                                                                                                                      "UrlDecode",
                                                                                                                      "HexDecode",
                                                                                                                      "HexEncode",
                                                                                                                      "ToLowerCase",
                                                                                                                      "ToUpperCase",
                                                                                                                      "Utf8ToUnicode",
                                                                                                                      "Trim",
                                                                                                                      "ICAPFileChecker",
                                                                                                                      "MessageToFile",
                                                                                                                      "MultipartFormGenerateFromVar",
                                                                                                                      "HttpSender",
                                                                                                                      "MessageAccumulator",
                                                                                                                      "MessageFromAccumulator",
                                                                                                                      "MessageFromPattern",
                                                                                                                      "MultipartFormGenerateFromMessage",
                                                                                                                      "JsonPatchMessage",
                                                                                                                      "JsonPatchVar",
                                                                                                                      "DigestFromMessage",
                                                                                                                      "Base64Encode",
                                                                                                                      "HMac",
                                                                                                                      "FileToMessage",
                                                                                                                      "JwtVerifier",
                                                                                                                      "CharsetChecker",
                                                                                                                      "LdapSearch",
                                                                                                                      "UnicodeDecode",
                                                                                                                      "MessageMapper",
                                                                                                                      "SimpleRateLimiter",
                                                                                                                      "EventSourceConverter",
                                                                                                                      "LazySessionTimeChecker",
                                                                                                                      "CalculateMessageProperties"
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "id": {
                                                                                                                    "description": "An identificator of action",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "conditions": {
                                                                                                                    "description": "Specifies the conditions for performina an action.",
                                                                                                                    "type": "array",
                                                                                                                    "items": {
                                                                                                                      "type": "object",
                                                                                                                      "additionalProperties": false,
                                                                                                                      "properties": {
                                                                                                                        "var": {
                                                                                                                          "description": "Specifies a variable to check.",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "operator": {
                                                                                                                          "description": "Specifies an operator.",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ],
                                                                                                                          "enum": [
                                                                                                                            "=",
                                                                                                                            "!=",
                                                                                                                            "<=",
                                                                                                                            ">=",
                                                                                                                            ">",
                                                                                                                            "<",
                                                                                                                            "in",
                                                                                                                            "not_in",
                                                                                                                            "~",
                                                                                                                            "~*",
                                                                                                                            "!~",
                                                                                                                            "!~*",
                                                                                                                            "ip_range",
                                                                                                                            "!ip_range",
                                                                                                                            "dn_mask",
                                                                                                                            "!dn_mask"
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "val": {
                                                                                                                          "description": "Specifies a value to check.",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "required": [
                                                                                                                        "var",
                                                                                                                        "operator",
                                                                                                                        "val"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "trace_config": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "enableAllActions": {
                                                                                                                        "description": "enable tracing of all actions in chains",
                                                                                                                        "type": "boolean"
                                                                                                                      },
                                                                                                                      "enableAllChains": {
                                                                                                                        "description": "enable tracing of all actions in child chains",
                                                                                                                        "type": "boolean"
                                                                                                                      },
                                                                                                                      "mode": {
                                                                                                                        "description": "Enable or disable tracing at this level.",
                                                                                                                        "type": "object",
                                                                                                                        "additionalProperties": false,
                                                                                                                        "properties": {
                                                                                                                          "enabled": {
                                                                                                                            "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                            "type": [
                                                                                                                              "number",
                                                                                                                              "string"
                                                                                                                            ],
                                                                                                                            "enum": [
                                                                                                                              "on",
                                                                                                                              "off",
                                                                                                                              "var_based"
                                                                                                                            ]
                                                                                                                          },
                                                                                                                          "var": {
                                                                                                                            "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                            "type": [
                                                                                                                              "number",
                                                                                                                              "string"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "spanAttributes": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "name": {
                                                                                                                              "description": "name of attribute",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "value": {
                                                                                                                              "description": "value of attribute, can contain variables",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            }
                                                                                                                          }
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "spanName": {
                                                                                                                        "description": "Specify name of span",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "enableSocketsTracing": {
                                                                                                                        "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                        "type": "boolean"
                                                                                                                      }
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "params": {
                                                                                                                    "description": "Specifies extra parameters for the actions.",
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": true
                                                                                                                  },
                                                                                                                  "requiredChildOneOf": {
                                                                                                                    "description": "Specifies unverifed action check",
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "decision": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ],
                                                                                                                        "enum": [
                                                                                                                          "BLOCK",
                                                                                                                          "WARN"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "onlyCheckers": {
                                                                                                                        "type": "boolean"
                                                                                                                      },
                                                                                                                      "include": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "exclude": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "string"
                                                                                                                        }
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "decision"
                                                                                                                    ],
                                                                                                                    "allOf": [
                                                                                                                      {
                                                                                                                        "if": {
                                                                                                                          "type": "object",
                                                                                                                          "required": [
                                                                                                                            "exclude"
                                                                                                                          ],
                                                                                                                          "properties": {
                                                                                                                            "exclude": {}
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "then": {
                                                                                                                          "not": {
                                                                                                                            "required": [
                                                                                                                              "include"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        }
                                                                                                                      },
                                                                                                                      {
                                                                                                                        "if": {
                                                                                                                          "type": "object",
                                                                                                                          "required": [
                                                                                                                            "include"
                                                                                                                          ],
                                                                                                                          "properties": {
                                                                                                                            "include": {}
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "then": {
                                                                                                                          "not": {
                                                                                                                            "required": [
                                                                                                                              "exclude"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        }
                                                                                                                      }
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "actions": {
                                                                                                                    "description": "Specifies a list of actions.",
                                                                                                                    "type": "array",
                                                                                                                    "items": {
                                                                                                                      "type": "object",
                                                                                                                      "additionalProperties": false,
                                                                                                                      "properties": {
                                                                                                                        "action": {
                                                                                                                          "description": "Specifies an action to perform",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ],
                                                                                                                          "enum": [
                                                                                                                            "ASN1ContentExtractor",
                                                                                                                            "Base64Decode",
                                                                                                                            "ConditionChecker",
                                                                                                                            "CheckDataSize",
                                                                                                                            "CheckMimeType",
                                                                                                                            "JsonPathExtract",
                                                                                                                            "JsonPathExtractToVars",
                                                                                                                            "JsonValidation",
                                                                                                                            "XsdValidation",
                                                                                                                            "PostFormDataToFlateJson",
                                                                                                                            "MultipartExtract",
                                                                                                                            "SetMessageFromVar",
                                                                                                                            "SetVarFromMessage",
                                                                                                                            "JwsToJson",
                                                                                                                            "XPathExtract",
                                                                                                                            "XPathExtractToVars",
                                                                                                                            "SharedMapDeleter",
                                                                                                                            "SharedMapRemover",
                                                                                                                            "SharedMapSetter",
                                                                                                                            "SharedMapGetter",
                                                                                                                            "RandomNumberToVar",
                                                                                                                            "VarsToSharedMap",
                                                                                                                            "SharedMapToVars",
                                                                                                                            "AntivirusFileChecker",
                                                                                                                            "MtomExtractor",
                                                                                                                            "JsonTransformer",
                                                                                                                            "SetVar",
                                                                                                                            "GraphQLRequestValidation",
                                                                                                                            "ProtobufValidation",
                                                                                                                            "OpenApiValidation",
                                                                                                                            "DelimiterSplitter",
                                                                                                                            "VarsToFile",
                                                                                                                            "FileToVars",
                                                                                                                            "WsdlValidation",
                                                                                                                            "HttpFilter",
                                                                                                                            "ProtobufToJson",
                                                                                                                            "FilterMds",
                                                                                                                            "OcspSignValidator",
                                                                                                                            "OcspToJson",
                                                                                                                            "ASN1ToJson",
                                                                                                                            "XmlTransformer",
                                                                                                                            "UrlEncode",
                                                                                                                            "UrlDecodeUni",
                                                                                                                            "UrlDecode",
                                                                                                                            "HexDecode",
                                                                                                                            "HexEncode",
                                                                                                                            "ToLowerCase",
                                                                                                                            "ToUpperCase",
                                                                                                                            "Utf8ToUnicode",
                                                                                                                            "Trim",
                                                                                                                            "ICAPFileChecker",
                                                                                                                            "MessageToFile",
                                                                                                                            "MultipartFormGenerateFromVar",
                                                                                                                            "HttpSender",
                                                                                                                            "MessageAccumulator",
                                                                                                                            "MessageFromAccumulator",
                                                                                                                            "MessageFromPattern",
                                                                                                                            "MultipartFormGenerateFromMessage",
                                                                                                                            "JsonPatchMessage",
                                                                                                                            "JsonPatchVar",
                                                                                                                            "DigestFromMessage",
                                                                                                                            "Base64Encode",
                                                                                                                            "HMac",
                                                                                                                            "FileToMessage",
                                                                                                                            "JwtVerifier",
                                                                                                                            "CharsetChecker",
                                                                                                                            "LdapSearch",
                                                                                                                            "UnicodeDecode",
                                                                                                                            "MessageMapper",
                                                                                                                            "SimpleRateLimiter",
                                                                                                                            "EventSourceConverter",
                                                                                                                            "LazySessionTimeChecker",
                                                                                                                            "CalculateMessageProperties"
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "id": {
                                                                                                                          "description": "An identificator of action",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "conditions": {
                                                                                                                          "description": "Specifies the conditions for performina an action.",
                                                                                                                          "type": "array",
                                                                                                                          "items": {
                                                                                                                            "type": "object",
                                                                                                                            "additionalProperties": false,
                                                                                                                            "properties": {
                                                                                                                              "var": {
                                                                                                                                "description": "Specifies a variable to check.",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "operator": {
                                                                                                                                "description": "Specifies an operator.",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ],
                                                                                                                                "enum": [
                                                                                                                                  "=",
                                                                                                                                  "!=",
                                                                                                                                  "<=",
                                                                                                                                  ">=",
                                                                                                                                  ">",
                                                                                                                                  "<",
                                                                                                                                  "in",
                                                                                                                                  "not_in",
                                                                                                                                  "~",
                                                                                                                                  "~*",
                                                                                                                                  "!~",
                                                                                                                                  "!~*",
                                                                                                                                  "ip_range",
                                                                                                                                  "!ip_range",
                                                                                                                                  "dn_mask",
                                                                                                                                  "!dn_mask"
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "val": {
                                                                                                                                "description": "Specifies a value to check.",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "required": [
                                                                                                                              "var",
                                                                                                                              "operator",
                                                                                                                              "val"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "trace_config": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "enableAllActions": {
                                                                                                                              "description": "enable tracing of all actions in chains",
                                                                                                                              "type": "boolean"
                                                                                                                            },
                                                                                                                            "enableAllChains": {
                                                                                                                              "description": "enable tracing of all actions in child chains",
                                                                                                                              "type": "boolean"
                                                                                                                            },
                                                                                                                            "mode": {
                                                                                                                              "description": "Enable or disable tracing at this level.",
                                                                                                                              "type": "object",
                                                                                                                              "additionalProperties": false,
                                                                                                                              "properties": {
                                                                                                                                "enabled": {
                                                                                                                                  "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                  "type": [
                                                                                                                                    "number",
                                                                                                                                    "string"
                                                                                                                                  ],
                                                                                                                                  "enum": [
                                                                                                                                    "on",
                                                                                                                                    "off",
                                                                                                                                    "var_based"
                                                                                                                                  ]
                                                                                                                                },
                                                                                                                                "var": {
                                                                                                                                  "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                  "type": [
                                                                                                                                    "number",
                                                                                                                                    "string"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "spanAttributes": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "name": {
                                                                                                                                    "description": "name of attribute",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "value": {
                                                                                                                                    "description": "value of attribute, can contain variables",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  }
                                                                                                                                }
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "spanName": {
                                                                                                                              "description": "Specify name of span",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "enableSocketsTracing": {
                                                                                                                              "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                              "type": "boolean"
                                                                                                                            }
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "params": {
                                                                                                                          "description": "Specifies extra parameters for the actions.",
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": true
                                                                                                                        },
                                                                                                                        "requiredChildOneOf": {
                                                                                                                          "description": "Specifies unverifed action check",
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "decision": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ],
                                                                                                                              "enum": [
                                                                                                                                "BLOCK",
                                                                                                                                "WARN"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "onlyCheckers": {
                                                                                                                              "type": "boolean"
                                                                                                                            },
                                                                                                                            "include": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "exclude": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "string"
                                                                                                                              }
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "decision"
                                                                                                                          ],
                                                                                                                          "allOf": [
                                                                                                                            {
                                                                                                                              "if": {
                                                                                                                                "type": "object",
                                                                                                                                "required": [
                                                                                                                                  "exclude"
                                                                                                                                ],
                                                                                                                                "properties": {
                                                                                                                                  "exclude": {}
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "then": {
                                                                                                                                "not": {
                                                                                                                                  "required": [
                                                                                                                                    "include"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              }
                                                                                                                            },
                                                                                                                            {
                                                                                                                              "if": {
                                                                                                                                "type": "object",
                                                                                                                                "required": [
                                                                                                                                  "include"
                                                                                                                                ],
                                                                                                                                "properties": {
                                                                                                                                  "include": {}
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "then": {
                                                                                                                                "not": {
                                                                                                                                  "required": [
                                                                                                                                    "exclude"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              }
                                                                                                                            }
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "actions": {
                                                                                                                          "description": "Specifies a list of actions.",
                                                                                                                          "type": "array",
                                                                                                                          "items": {
                                                                                                                            "type": "object",
                                                                                                                            "additionalProperties": false,
                                                                                                                            "properties": {
                                                                                                                              "action": {
                                                                                                                                "description": "Specifies an action to perform",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ],
                                                                                                                                "enum": [
                                                                                                                                  "ASN1ContentExtractor",
                                                                                                                                  "Base64Decode",
                                                                                                                                  "ConditionChecker",
                                                                                                                                  "CheckDataSize",
                                                                                                                                  "CheckMimeType",
                                                                                                                                  "JsonPathExtract",
                                                                                                                                  "JsonPathExtractToVars",
                                                                                                                                  "JsonValidation",
                                                                                                                                  "XsdValidation",
                                                                                                                                  "PostFormDataToFlateJson",
                                                                                                                                  "MultipartExtract",
                                                                                                                                  "SetMessageFromVar",
                                                                                                                                  "SetVarFromMessage",
                                                                                                                                  "JwsToJson",
                                                                                                                                  "XPathExtract",
                                                                                                                                  "XPathExtractToVars",
                                                                                                                                  "SharedMapDeleter",
                                                                                                                                  "SharedMapRemover",
                                                                                                                                  "SharedMapSetter",
                                                                                                                                  "SharedMapGetter",
                                                                                                                                  "RandomNumberToVar",
                                                                                                                                  "VarsToSharedMap",
                                                                                                                                  "SharedMapToVars",
                                                                                                                                  "AntivirusFileChecker",
                                                                                                                                  "MtomExtractor",
                                                                                                                                  "JsonTransformer",
                                                                                                                                  "SetVar",
                                                                                                                                  "GraphQLRequestValidation",
                                                                                                                                  "ProtobufValidation",
                                                                                                                                  "OpenApiValidation",
                                                                                                                                  "DelimiterSplitter",
                                                                                                                                  "VarsToFile",
                                                                                                                                  "FileToVars",
                                                                                                                                  "WsdlValidation",
                                                                                                                                  "HttpFilter",
                                                                                                                                  "ProtobufToJson",
                                                                                                                                  "FilterMds",
                                                                                                                                  "OcspSignValidator",
                                                                                                                                  "OcspToJson",
                                                                                                                                  "ASN1ToJson",
                                                                                                                                  "XmlTransformer",
                                                                                                                                  "UrlEncode",
                                                                                                                                  "UrlDecodeUni",
                                                                                                                                  "UrlDecode",
                                                                                                                                  "HexDecode",
                                                                                                                                  "HexEncode",
                                                                                                                                  "ToLowerCase",
                                                                                                                                  "ToUpperCase",
                                                                                                                                  "Utf8ToUnicode",
                                                                                                                                  "Trim",
                                                                                                                                  "ICAPFileChecker",
                                                                                                                                  "MessageToFile",
                                                                                                                                  "MultipartFormGenerateFromVar",
                                                                                                                                  "HttpSender",
                                                                                                                                  "MessageAccumulator",
                                                                                                                                  "MessageFromAccumulator",
                                                                                                                                  "MessageFromPattern",
                                                                                                                                  "MultipartFormGenerateFromMessage",
                                                                                                                                  "JsonPatchMessage",
                                                                                                                                  "JsonPatchVar",
                                                                                                                                  "DigestFromMessage",
                                                                                                                                  "Base64Encode",
                                                                                                                                  "HMac",
                                                                                                                                  "FileToMessage",
                                                                                                                                  "JwtVerifier",
                                                                                                                                  "CharsetChecker",
                                                                                                                                  "LdapSearch",
                                                                                                                                  "UnicodeDecode",
                                                                                                                                  "MessageMapper",
                                                                                                                                  "SimpleRateLimiter",
                                                                                                                                  "EventSourceConverter",
                                                                                                                                  "LazySessionTimeChecker",
                                                                                                                                  "CalculateMessageProperties"
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "id": {
                                                                                                                                "description": "An identificator of action",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "conditions": {
                                                                                                                                "description": "Specifies the conditions for performina an action.",
                                                                                                                                "type": "array",
                                                                                                                                "items": {
                                                                                                                                  "type": "object",
                                                                                                                                  "additionalProperties": false,
                                                                                                                                  "properties": {
                                                                                                                                    "var": {
                                                                                                                                      "description": "Specifies a variable to check.",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "operator": {
                                                                                                                                      "description": "Specifies an operator.",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ],
                                                                                                                                      "enum": [
                                                                                                                                        "=",
                                                                                                                                        "!=",
                                                                                                                                        "<=",
                                                                                                                                        ">=",
                                                                                                                                        ">",
                                                                                                                                        "<",
                                                                                                                                        "in",
                                                                                                                                        "not_in",
                                                                                                                                        "~",
                                                                                                                                        "~*",
                                                                                                                                        "!~",
                                                                                                                                        "!~*",
                                                                                                                                        "ip_range",
                                                                                                                                        "!ip_range",
                                                                                                                                        "dn_mask",
                                                                                                                                        "!dn_mask"
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "val": {
                                                                                                                                      "description": "Specifies a value to check.",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "required": [
                                                                                                                                    "var",
                                                                                                                                    "operator",
                                                                                                                                    "val"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "trace_config": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "enableAllActions": {
                                                                                                                                    "description": "enable tracing of all actions in chains",
                                                                                                                                    "type": "boolean"
                                                                                                                                  },
                                                                                                                                  "enableAllChains": {
                                                                                                                                    "description": "enable tracing of all actions in child chains",
                                                                                                                                    "type": "boolean"
                                                                                                                                  },
                                                                                                                                  "mode": {
                                                                                                                                    "description": "Enable or disable tracing at this level.",
                                                                                                                                    "type": "object",
                                                                                                                                    "additionalProperties": false,
                                                                                                                                    "properties": {
                                                                                                                                      "enabled": {
                                                                                                                                        "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                        "type": [
                                                                                                                                          "number",
                                                                                                                                          "string"
                                                                                                                                        ],
                                                                                                                                        "enum": [
                                                                                                                                          "on",
                                                                                                                                          "off",
                                                                                                                                          "var_based"
                                                                                                                                        ]
                                                                                                                                      },
                                                                                                                                      "var": {
                                                                                                                                        "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                        "type": [
                                                                                                                                          "number",
                                                                                                                                          "string"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "spanAttributes": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "name": {
                                                                                                                                          "description": "name of attribute",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "value": {
                                                                                                                                          "description": "value of attribute, can contain variables",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        }
                                                                                                                                      }
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "spanName": {
                                                                                                                                    "description": "Specify name of span",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "enableSocketsTracing": {
                                                                                                                                    "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                                    "type": "boolean"
                                                                                                                                  }
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "params": {
                                                                                                                                "description": "Specifies extra parameters for the actions.",
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": true
                                                                                                                              },
                                                                                                                              "requiredChildOneOf": {
                                                                                                                                "description": "Specifies unverifed action check",
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "decision": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ],
                                                                                                                                    "enum": [
                                                                                                                                      "BLOCK",
                                                                                                                                      "WARN"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "onlyCheckers": {
                                                                                                                                    "type": "boolean"
                                                                                                                                  },
                                                                                                                                  "include": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "exclude": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "string"
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "decision"
                                                                                                                                ],
                                                                                                                                "allOf": [
                                                                                                                                  {
                                                                                                                                    "if": {
                                                                                                                                      "type": "object",
                                                                                                                                      "required": [
                                                                                                                                        "exclude"
                                                                                                                                      ],
                                                                                                                                      "properties": {
                                                                                                                                        "exclude": {}
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "then": {
                                                                                                                                      "not": {
                                                                                                                                        "required": [
                                                                                                                                          "include"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  {
                                                                                                                                    "if": {
                                                                                                                                      "type": "object",
                                                                                                                                      "required": [
                                                                                                                                        "include"
                                                                                                                                      ],
                                                                                                                                      "properties": {
                                                                                                                                        "include": {}
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "then": {
                                                                                                                                      "not": {
                                                                                                                                        "required": [
                                                                                                                                          "exclude"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "actions": {
                                                                                                                                "description": "Specifies a list of actions.",
                                                                                                                                "type": "array",
                                                                                                                                "items": {
                                                                                                                                  "type": "object",
                                                                                                                                  "additionalProperties": false,
                                                                                                                                  "properties": {
                                                                                                                                    "action": {
                                                                                                                                      "description": "Specifies an action to perform",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ],
                                                                                                                                      "enum": [
                                                                                                                                        "ASN1ContentExtractor",
                                                                                                                                        "Base64Decode",
                                                                                                                                        "ConditionChecker",
                                                                                                                                        "CheckDataSize",
                                                                                                                                        "CheckMimeType",
                                                                                                                                        "JsonPathExtract",
                                                                                                                                        "JsonPathExtractToVars",
                                                                                                                                        "JsonValidation",
                                                                                                                                        "XsdValidation",
                                                                                                                                        "PostFormDataToFlateJson",
                                                                                                                                        "MultipartExtract",
                                                                                                                                        "SetMessageFromVar",
                                                                                                                                        "SetVarFromMessage",
                                                                                                                                        "JwsToJson",
                                                                                                                                        "XPathExtract",
                                                                                                                                        "XPathExtractToVars",
                                                                                                                                        "SharedMapDeleter",
                                                                                                                                        "SharedMapRemover",
                                                                                                                                        "SharedMapSetter",
                                                                                                                                        "SharedMapGetter",
                                                                                                                                        "RandomNumberToVar",
                                                                                                                                        "VarsToSharedMap",
                                                                                                                                        "SharedMapToVars",
                                                                                                                                        "AntivirusFileChecker",
                                                                                                                                        "MtomExtractor",
                                                                                                                                        "JsonTransformer",
                                                                                                                                        "SetVar",
                                                                                                                                        "GraphQLRequestValidation",
                                                                                                                                        "ProtobufValidation",
                                                                                                                                        "OpenApiValidation",
                                                                                                                                        "DelimiterSplitter",
                                                                                                                                        "VarsToFile",
                                                                                                                                        "FileToVars",
                                                                                                                                        "WsdlValidation",
                                                                                                                                        "HttpFilter",
                                                                                                                                        "ProtobufToJson",
                                                                                                                                        "FilterMds",
                                                                                                                                        "OcspSignValidator",
                                                                                                                                        "OcspToJson",
                                                                                                                                        "ASN1ToJson",
                                                                                                                                        "XmlTransformer",
                                                                                                                                        "UrlEncode",
                                                                                                                                        "UrlDecodeUni",
                                                                                                                                        "UrlDecode",
                                                                                                                                        "HexDecode",
                                                                                                                                        "HexEncode",
                                                                                                                                        "ToLowerCase",
                                                                                                                                        "ToUpperCase",
                                                                                                                                        "Utf8ToUnicode",
                                                                                                                                        "Trim",
                                                                                                                                        "ICAPFileChecker",
                                                                                                                                        "MessageToFile",
                                                                                                                                        "MultipartFormGenerateFromVar",
                                                                                                                                        "HttpSender",
                                                                                                                                        "MessageAccumulator",
                                                                                                                                        "MessageFromAccumulator",
                                                                                                                                        "MessageFromPattern",
                                                                                                                                        "MultipartFormGenerateFromMessage",
                                                                                                                                        "JsonPatchMessage",
                                                                                                                                        "JsonPatchVar",
                                                                                                                                        "DigestFromMessage",
                                                                                                                                        "Base64Encode",
                                                                                                                                        "HMac",
                                                                                                                                        "FileToMessage",
                                                                                                                                        "JwtVerifier",
                                                                                                                                        "CharsetChecker",
                                                                                                                                        "LdapSearch",
                                                                                                                                        "UnicodeDecode",
                                                                                                                                        "MessageMapper",
                                                                                                                                        "SimpleRateLimiter",
                                                                                                                                        "EventSourceConverter",
                                                                                                                                        "LazySessionTimeChecker",
                                                                                                                                        "CalculateMessageProperties"
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "id": {
                                                                                                                                      "description": "An identificator of action",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "conditions": {
                                                                                                                                      "description": "Specifies the conditions for performina an action.",
                                                                                                                                      "type": "array",
                                                                                                                                      "items": {
                                                                                                                                        "type": "object",
                                                                                                                                        "additionalProperties": false,
                                                                                                                                        "properties": {
                                                                                                                                          "var": {
                                                                                                                                            "description": "Specifies a variable to check.",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "operator": {
                                                                                                                                            "description": "Specifies an operator.",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ],
                                                                                                                                            "enum": [
                                                                                                                                              "=",
                                                                                                                                              "!=",
                                                                                                                                              "<=",
                                                                                                                                              ">=",
                                                                                                                                              ">",
                                                                                                                                              "<",
                                                                                                                                              "in",
                                                                                                                                              "not_in",
                                                                                                                                              "~",
                                                                                                                                              "~*",
                                                                                                                                              "!~",
                                                                                                                                              "!~*",
                                                                                                                                              "ip_range",
                                                                                                                                              "!ip_range",
                                                                                                                                              "dn_mask",
                                                                                                                                              "!dn_mask"
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "val": {
                                                                                                                                            "description": "Specifies a value to check.",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "required": [
                                                                                                                                          "var",
                                                                                                                                          "operator",
                                                                                                                                          "val"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "trace_config": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "enableAllActions": {
                                                                                                                                          "description": "enable tracing of all actions in chains",
                                                                                                                                          "type": "boolean"
                                                                                                                                        },
                                                                                                                                        "enableAllChains": {
                                                                                                                                          "description": "enable tracing of all actions in child chains",
                                                                                                                                          "type": "boolean"
                                                                                                                                        },
                                                                                                                                        "mode": {
                                                                                                                                          "description": "Enable or disable tracing at this level.",
                                                                                                                                          "type": "object",
                                                                                                                                          "additionalProperties": false,
                                                                                                                                          "properties": {
                                                                                                                                            "enabled": {
                                                                                                                                              "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                              "type": [
                                                                                                                                                "number",
                                                                                                                                                "string"
                                                                                                                                              ],
                                                                                                                                              "enum": [
                                                                                                                                                "on",
                                                                                                                                                "off",
                                                                                                                                                "var_based"
                                                                                                                                              ]
                                                                                                                                            },
                                                                                                                                            "var": {
                                                                                                                                              "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                              "type": [
                                                                                                                                                "number",
                                                                                                                                                "string"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "spanAttributes": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "name": {
                                                                                                                                                "description": "name of attribute",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "value": {
                                                                                                                                                "description": "value of attribute, can contain variables",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              }
                                                                                                                                            }
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "spanName": {
                                                                                                                                          "description": "Specify name of span",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "enableSocketsTracing": {
                                                                                                                                          "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                                          "type": "boolean"
                                                                                                                                        }
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "params": {
                                                                                                                                      "description": "Specifies extra parameters for the actions.",
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": true
                                                                                                                                    },
                                                                                                                                    "requiredChildOneOf": {
                                                                                                                                      "description": "Specifies unverifed action check",
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "decision": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ],
                                                                                                                                          "enum": [
                                                                                                                                            "BLOCK",
                                                                                                                                            "WARN"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "onlyCheckers": {
                                                                                                                                          "type": "boolean"
                                                                                                                                        },
                                                                                                                                        "include": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "exclude": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "string"
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "decision"
                                                                                                                                      ],
                                                                                                                                      "allOf": [
                                                                                                                                        {
                                                                                                                                          "if": {
                                                                                                                                            "type": "object",
                                                                                                                                            "required": [
                                                                                                                                              "exclude"
                                                                                                                                            ],
                                                                                                                                            "properties": {
                                                                                                                                              "exclude": {}
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "then": {
                                                                                                                                            "not": {
                                                                                                                                              "required": [
                                                                                                                                                "include"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                          "if": {
                                                                                                                                            "type": "object",
                                                                                                                                            "required": [
                                                                                                                                              "include"
                                                                                                                                            ],
                                                                                                                                            "properties": {
                                                                                                                                              "include": {}
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "then": {
                                                                                                                                            "not": {
                                                                                                                                              "required": [
                                                                                                                                                "exclude"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "actions": {
                                                                                                                                      "description": "Specifies a list of actions.",
                                                                                                                                      "type": "array",
                                                                                                                                      "items": {
                                                                                                                                        "type": "object",
                                                                                                                                        "additionalProperties": false,
                                                                                                                                        "properties": {
                                                                                                                                          "action": {
                                                                                                                                            "description": "Specifies an action to perform",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ],
                                                                                                                                            "enum": [
                                                                                                                                              "ASN1ContentExtractor",
                                                                                                                                              "Base64Decode",
                                                                                                                                              "ConditionChecker",
                                                                                                                                              "CheckDataSize",
                                                                                                                                              "CheckMimeType",
                                                                                                                                              "JsonPathExtract",
                                                                                                                                              "JsonPathExtractToVars",
                                                                                                                                              "JsonValidation",
                                                                                                                                              "XsdValidation",
                                                                                                                                              "PostFormDataToFlateJson",
                                                                                                                                              "MultipartExtract",
                                                                                                                                              "SetMessageFromVar",
                                                                                                                                              "SetVarFromMessage",
                                                                                                                                              "JwsToJson",
                                                                                                                                              "XPathExtract",
                                                                                                                                              "XPathExtractToVars",
                                                                                                                                              "SharedMapDeleter",
                                                                                                                                              "SharedMapRemover",
                                                                                                                                              "SharedMapSetter",
                                                                                                                                              "SharedMapGetter",
                                                                                                                                              "RandomNumberToVar",
                                                                                                                                              "VarsToSharedMap",
                                                                                                                                              "SharedMapToVars",
                                                                                                                                              "AntivirusFileChecker",
                                                                                                                                              "MtomExtractor",
                                                                                                                                              "JsonTransformer",
                                                                                                                                              "SetVar",
                                                                                                                                              "GraphQLRequestValidation",
                                                                                                                                              "ProtobufValidation",
                                                                                                                                              "OpenApiValidation",
                                                                                                                                              "DelimiterSplitter",
                                                                                                                                              "VarsToFile",
                                                                                                                                              "FileToVars",
                                                                                                                                              "WsdlValidation",
                                                                                                                                              "HttpFilter",
                                                                                                                                              "ProtobufToJson",
                                                                                                                                              "FilterMds",
                                                                                                                                              "OcspSignValidator",
                                                                                                                                              "OcspToJson",
                                                                                                                                              "ASN1ToJson",
                                                                                                                                              "XmlTransformer",
                                                                                                                                              "UrlEncode",
                                                                                                                                              "UrlDecodeUni",
                                                                                                                                              "UrlDecode",
                                                                                                                                              "HexDecode",
                                                                                                                                              "HexEncode",
                                                                                                                                              "ToLowerCase",
                                                                                                                                              "ToUpperCase",
                                                                                                                                              "Utf8ToUnicode",
                                                                                                                                              "Trim",
                                                                                                                                              "ICAPFileChecker",
                                                                                                                                              "MessageToFile",
                                                                                                                                              "MultipartFormGenerateFromVar",
                                                                                                                                              "HttpSender",
                                                                                                                                              "MessageAccumulator",
                                                                                                                                              "MessageFromAccumulator",
                                                                                                                                              "MessageFromPattern",
                                                                                                                                              "MultipartFormGenerateFromMessage",
                                                                                                                                              "JsonPatchMessage",
                                                                                                                                              "JsonPatchVar",
                                                                                                                                              "DigestFromMessage",
                                                                                                                                              "Base64Encode",
                                                                                                                                              "HMac",
                                                                                                                                              "FileToMessage",
                                                                                                                                              "JwtVerifier",
                                                                                                                                              "CharsetChecker",
                                                                                                                                              "LdapSearch",
                                                                                                                                              "UnicodeDecode",
                                                                                                                                              "MessageMapper",
                                                                                                                                              "SimpleRateLimiter",
                                                                                                                                              "EventSourceConverter",
                                                                                                                                              "LazySessionTimeChecker",
                                                                                                                                              "CalculateMessageProperties"
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "id": {
                                                                                                                                            "description": "An identificator of action",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "conditions": {
                                                                                                                                            "description": "Specifies the conditions for performina an action.",
                                                                                                                                            "type": "array",
                                                                                                                                            "items": {
                                                                                                                                              "type": "object",
                                                                                                                                              "additionalProperties": false,
                                                                                                                                              "properties": {
                                                                                                                                                "var": {
                                                                                                                                                  "description": "Specifies a variable to check.",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ]
                                                                                                                                                },
                                                                                                                                                "operator": {
                                                                                                                                                  "description": "Specifies an operator.",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ],
                                                                                                                                                  "enum": [
                                                                                                                                                    "=",
                                                                                                                                                    "!=",
                                                                                                                                                    "<=",
                                                                                                                                                    ">=",
                                                                                                                                                    ">",
                                                                                                                                                    "<",
                                                                                                                                                    "in",
                                                                                                                                                    "not_in",
                                                                                                                                                    "~",
                                                                                                                                                    "~*",
                                                                                                                                                    "!~",
                                                                                                                                                    "!~*",
                                                                                                                                                    "ip_range",
                                                                                                                                                    "!ip_range",
                                                                                                                                                    "dn_mask",
                                                                                                                                                    "!dn_mask"
                                                                                                                                                  ]
                                                                                                                                                },
                                                                                                                                                "val": {
                                                                                                                                                  "description": "Specifies a value to check.",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "required": [
                                                                                                                                                "var",
                                                                                                                                                "operator",
                                                                                                                                                "val"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "trace_config": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "enableAllActions": {
                                                                                                                                                "description": "enable tracing of all actions in chains",
                                                                                                                                                "type": "boolean"
                                                                                                                                              },
                                                                                                                                              "enableAllChains": {
                                                                                                                                                "description": "enable tracing of all actions in child chains",
                                                                                                                                                "type": "boolean"
                                                                                                                                              },
                                                                                                                                              "mode": {
                                                                                                                                                "description": "Enable or disable tracing at this level.",
                                                                                                                                                "type": "object",
                                                                                                                                                "additionalProperties": false,
                                                                                                                                                "properties": {
                                                                                                                                                  "enabled": {
                                                                                                                                                    "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                                    "type": [
                                                                                                                                                      "number",
                                                                                                                                                      "string"
                                                                                                                                                    ],
                                                                                                                                                    "enum": [
                                                                                                                                                      "on",
                                                                                                                                                      "off",
                                                                                                                                                      "var_based"
                                                                                                                                                    ]
                                                                                                                                                  },
                                                                                                                                                  "var": {
                                                                                                                                                    "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                                    "type": [
                                                                                                                                                      "number",
                                                                                                                                                      "string"
                                                                                                                                                    ]
                                                                                                                                                  }
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "spanAttributes": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "name": {
                                                                                                                                                      "description": "name of attribute",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "value": {
                                                                                                                                                      "description": "value of attribute, can contain variables",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    }
                                                                                                                                                  }
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "spanName": {
                                                                                                                                                "description": "Specify name of span",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "enableSocketsTracing": {
                                                                                                                                                "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                                                "type": "boolean"
                                                                                                                                              }
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "params": {
                                                                                                                                            "description": "Specifies extra parameters for the actions.",
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": true
                                                                                                                                          },
                                                                                                                                          "requiredChildOneOf": {
                                                                                                                                            "description": "Specifies unverifed action check",
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "decision": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ],
                                                                                                                                                "enum": [
                                                                                                                                                  "BLOCK",
                                                                                                                                                  "WARN"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "onlyCheckers": {
                                                                                                                                                "type": "boolean"
                                                                                                                                              },
                                                                                                                                              "include": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "exclude": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "string"
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "decision"
                                                                                                                                            ],
                                                                                                                                            "allOf": [
                                                                                                                                              {
                                                                                                                                                "if": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "required": [
                                                                                                                                                    "exclude"
                                                                                                                                                  ],
                                                                                                                                                  "properties": {
                                                                                                                                                    "exclude": {}
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "then": {
                                                                                                                                                  "not": {
                                                                                                                                                    "required": [
                                                                                                                                                      "include"
                                                                                                                                                    ]
                                                                                                                                                  }
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              {
                                                                                                                                                "if": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "required": [
                                                                                                                                                    "include"
                                                                                                                                                  ],
                                                                                                                                                  "properties": {
                                                                                                                                                    "include": {}
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "then": {
                                                                                                                                                  "not": {
                                                                                                                                                    "required": [
                                                                                                                                                      "exclude"
                                                                                                                                                    ]
                                                                                                                                                  }
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "actions": {
                                                                                                                                            "description": "Specifies a list of actions.",
                                                                                                                                            "type": "array",
                                                                                                                                            "items": {
                                                                                                                                              "type": "object",
                                                                                                                                              "additionalProperties": false,
                                                                                                                                              "properties": {
                                                                                                                                                "action": {
                                                                                                                                                  "description": "Specifies an action to perform",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ],
                                                                                                                                                  "enum": [
                                                                                                                                                    "ASN1ContentExtractor",
                                                                                                                                                    "Base64Decode",
                                                                                                                                                    "ConditionChecker",
                                                                                                                                                    "CheckDataSize",
                                                                                                                                                    "CheckMimeType",
                                                                                                                                                    "JsonPathExtract",
                                                                                                                                                    "JsonPathExtractToVars",
                                                                                                                                                    "JsonValidation",
                                                                                                                                                    "XsdValidation",
                                                                                                                                                    "PostFormDataToFlateJson",
                                                                                                                                                    "MultipartExtract",
                                                                                                                                                    "SetMessageFromVar",
                                                                                                                                                    "SetVarFromMessage",
                                                                                                                                                    "JwsToJson",
                                                                                                                                                    "XPathExtract",
                                                                                                                                                    "XPathExtractToVars",
                                                                                                                                                    "SharedMapDeleter",
                                                                                                                                                    "SharedMapRemover",
                                                                                                                                                    "SharedMapSetter",
                                                                                                                                                    "SharedMapGetter",
                                                                                                                                                    "RandomNumberToVar",
                                                                                                                                                    "VarsToSharedMap",
                                                                                                                                                    "SharedMapToVars",
                                                                                                                                                    "AntivirusFileChecker",
                                                                                                                                                    "MtomExtractor",
                                                                                                                                                    "JsonTransformer",
                                                                                                                                                    "SetVar",
                                                                                                                                                    "GraphQLRequestValidation",
                                                                                                                                                    "ProtobufValidation",
                                                                                                                                                    "OpenApiValidation",
                                                                                                                                                    "DelimiterSplitter",
                                                                                                                                                    "VarsToFile",
                                                                                                                                                    "FileToVars",
                                                                                                                                                    "WsdlValidation",
                                                                                                                                                    "HttpFilter",
                                                                                                                                                    "ProtobufToJson",
                                                                                                                                                    "FilterMds",
                                                                                                                                                    "OcspSignValidator",
                                                                                                                                                    "OcspToJson",
                                                                                                                                                    "ASN1ToJson",
                                                                                                                                                    "XmlTransformer",
                                                                                                                                                    "UrlEncode",
                                                                                                                                                    "UrlDecodeUni",
                                                                                                                                                    "UrlDecode",
                                                                                                                                                    "HexDecode",
                                                                                                                                                    "HexEncode",
                                                                                                                                                    "ToLowerCase",
                                                                                                                                                    "ToUpperCase",
                                                                                                                                                    "Utf8ToUnicode",
                                                                                                                                                    "Trim",
                                                                                                                                                    "ICAPFileChecker",
                                                                                                                                                    "MessageToFile",
                                                                                                                                                    "MultipartFormGenerateFromVar",
                                                                                                                                                    "HttpSender",
                                                                                                                                                    "MessageAccumulator",
                                                                                                                                                    "MessageFromAccumulator",
                                                                                                                                                    "MessageFromPattern",
                                                                                                                                                    "MultipartFormGenerateFromMessage",
                                                                                                                                                    "JsonPatchMessage",
                                                                                                                                                    "JsonPatchVar",
                                                                                                                                                    "DigestFromMessage",
                                                                                                                                                    "Base64Encode",
                                                                                                                                                    "HMac",
                                                                                                                                                    "FileToMessage",
                                                                                                                                                    "JwtVerifier",
                                                                                                                                                    "CharsetChecker",
                                                                                                                                                    "LdapSearch",
                                                                                                                                                    "UnicodeDecode",
                                                                                                                                                    "MessageMapper",
                                                                                                                                                    "SimpleRateLimiter",
                                                                                                                                                    "EventSourceConverter",
                                                                                                                                                    "LazySessionTimeChecker",
                                                                                                                                                    "CalculateMessageProperties"
                                                                                                                                                  ]
                                                                                                                                                },
                                                                                                                                                "id": {
                                                                                                                                                  "description": "An identificator of action",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ]
                                                                                                                                                },
                                                                                                                                                "conditions": {
                                                                                                                                                  "description": "Specifies the conditions for performina an action.",
                                                                                                                                                  "type": "array",
                                                                                                                                                  "items": {
                                                                                                                                                    "type": "object",
                                                                                                                                                    "additionalProperties": false,
                                                                                                                                                    "properties": {
                                                                                                                                                      "var": {
                                                                                                                                                        "description": "Specifies a variable to check.",
                                                                                                                                                        "type": [
                                                                                                                                                          "number",
                                                                                                                                                          "string"
                                                                                                                                                        ]
                                                                                                                                                      },
                                                                                                                                                      "operator": {
                                                                                                                                                        "description": "Specifies an operator.",
                                                                                                                                                        "type": [
                                                                                                                                                          "number",
                                                                                                                                                          "string"
                                                                                                                                                        ],
                                                                                                                                                        "enum": [
                                                                                                                                                          "=",
                                                                                                                                                          "!=",
                                                                                                                                                          "<=",
                                                                                                                                                          ">=",
                                                                                                                                                          ">",
                                                                                                                                                          "<",
                                                                                                                                                          "in",
                                                                                                                                                          "not_in",
                                                                                                                                                          "~",
                                                                                                                                                          "~*",
                                                                                                                                                          "!~",
                                                                                                                                                          "!~*",
                                                                                                                                                          "ip_range",
                                                                                                                                                          "!ip_range",
                                                                                                                                                          "dn_mask",
                                                                                                                                                          "!dn_mask"
                                                                                                                                                        ]
                                                                                                                                                      },
                                                                                                                                                      "val": {
                                                                                                                                                        "description": "Specifies a value to check.",
                                                                                                                                                        "type": [
                                                                                                                                                          "number",
                                                                                                                                                          "string"
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    },
                                                                                                                                                    "required": [
                                                                                                                                                      "var",
                                                                                                                                                      "operator",
                                                                                                                                                      "val"
                                                                                                                                                    ]
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "params": {
                                                                                                                                                  "description": "Specifies extra parameters for the actions.",
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": true
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "required": [
                                                                                                                                                "action"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "audit": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "enabled": {
                                                                                                                                                "type": "boolean"
                                                                                                                                              },
                                                                                                                                              "events": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "name": {
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "message": {
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "conditions": {
                                                                                                                                                      "type": "array",
                                                                                                                                                      "items": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "additionalProperties": false,
                                                                                                                                                        "properties": {
                                                                                                                                                          "var": {
                                                                                                                                                            "description": "Specifies a variable to check.",
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "operator": {
                                                                                                                                                            "description": "Specifies an operator.",
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ],
                                                                                                                                                            "enum": [
                                                                                                                                                              "=",
                                                                                                                                                              "!=",
                                                                                                                                                              "<=",
                                                                                                                                                              ">=",
                                                                                                                                                              ">",
                                                                                                                                                              "<",
                                                                                                                                                              "in",
                                                                                                                                                              "not_in",
                                                                                                                                                              "~",
                                                                                                                                                              "~*",
                                                                                                                                                              "!~",
                                                                                                                                                              "!~*",
                                                                                                                                                              "ip_range",
                                                                                                                                                              "!ip_range",
                                                                                                                                                              "dn_mask",
                                                                                                                                                              "!dn_mask"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "val": {
                                                                                                                                                            "description": "Specifies a value to check.",
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          }
                                                                                                                                                        },
                                                                                                                                                        "required": [
                                                                                                                                                          "var",
                                                                                                                                                          "operator",
                                                                                                                                                          "val"
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    },
                                                                                                                                                    "fields": {
                                                                                                                                                      "type": "array",
                                                                                                                                                      "items": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "additionalProperties": false,
                                                                                                                                                        "properties": {
                                                                                                                                                          "key": {
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "val": {
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          }
                                                                                                                                                        },
                                                                                                                                                        "required": [
                                                                                                                                                          "key",
                                                                                                                                                          "val"
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    }
                                                                                                                                                  },
                                                                                                                                                  "required": [
                                                                                                                                                    "name",
                                                                                                                                                    "message"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "enabled"
                                                                                                                                            ],
                                                                                                                                            "allOf": [
                                                                                                                                              {
                                                                                                                                                "if": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "required": [
                                                                                                                                                    "enabled"
                                                                                                                                                  ],
                                                                                                                                                  "properties": {
                                                                                                                                                    "enabled": {
                                                                                                                                                      "const": false
                                                                                                                                                    }
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "then": {
                                                                                                                                                  "required": []
                                                                                                                                                },
                                                                                                                                                "else": {
                                                                                                                                                  "required": [
                                                                                                                                                    "events"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "required": [
                                                                                                                                          "action"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "audit": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "enabled": {
                                                                                                                                          "type": "boolean"
                                                                                                                                        },
                                                                                                                                        "events": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "name": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "message": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "conditions": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "var": {
                                                                                                                                                      "description": "Specifies a variable to check.",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "operator": {
                                                                                                                                                      "description": "Specifies an operator.",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ],
                                                                                                                                                      "enum": [
                                                                                                                                                        "=",
                                                                                                                                                        "!=",
                                                                                                                                                        "<=",
                                                                                                                                                        ">=",
                                                                                                                                                        ">",
                                                                                                                                                        "<",
                                                                                                                                                        "in",
                                                                                                                                                        "not_in",
                                                                                                                                                        "~",
                                                                                                                                                        "~*",
                                                                                                                                                        "!~",
                                                                                                                                                        "!~*",
                                                                                                                                                        "ip_range",
                                                                                                                                                        "!ip_range",
                                                                                                                                                        "dn_mask",
                                                                                                                                                        "!dn_mask"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "val": {
                                                                                                                                                      "description": "Specifies a value to check.",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    }
                                                                                                                                                  },
                                                                                                                                                  "required": [
                                                                                                                                                    "var",
                                                                                                                                                    "operator",
                                                                                                                                                    "val"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "fields": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "key": {
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "val": {
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    }
                                                                                                                                                  },
                                                                                                                                                  "required": [
                                                                                                                                                    "key",
                                                                                                                                                    "val"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "name",
                                                                                                                                              "message"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "enabled"
                                                                                                                                      ],
                                                                                                                                      "allOf": [
                                                                                                                                        {
                                                                                                                                          "if": {
                                                                                                                                            "type": "object",
                                                                                                                                            "required": [
                                                                                                                                              "enabled"
                                                                                                                                            ],
                                                                                                                                            "properties": {
                                                                                                                                              "enabled": {
                                                                                                                                                "const": false
                                                                                                                                              }
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "then": {
                                                                                                                                            "required": []
                                                                                                                                          },
                                                                                                                                          "else": {
                                                                                                                                            "required": [
                                                                                                                                              "events"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "required": [
                                                                                                                                    "action"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "audit": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "enabled": {
                                                                                                                                    "type": "boolean"
                                                                                                                                  },
                                                                                                                                  "events": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "name": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "message": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "conditions": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "var": {
                                                                                                                                                "description": "Specifies a variable to check.",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "operator": {
                                                                                                                                                "description": "Specifies an operator.",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ],
                                                                                                                                                "enum": [
                                                                                                                                                  "=",
                                                                                                                                                  "!=",
                                                                                                                                                  "<=",
                                                                                                                                                  ">=",
                                                                                                                                                  ">",
                                                                                                                                                  "<",
                                                                                                                                                  "in",
                                                                                                                                                  "not_in",
                                                                                                                                                  "~",
                                                                                                                                                  "~*",
                                                                                                                                                  "!~",
                                                                                                                                                  "!~*",
                                                                                                                                                  "ip_range",
                                                                                                                                                  "!ip_range",
                                                                                                                                                  "dn_mask",
                                                                                                                                                  "!dn_mask"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "val": {
                                                                                                                                                "description": "Specifies a value to check.",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "var",
                                                                                                                                              "operator",
                                                                                                                                              "val"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "fields": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "key": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "val": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "key",
                                                                                                                                              "val"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "name",
                                                                                                                                        "message"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "enabled"
                                                                                                                                ],
                                                                                                                                "allOf": [
                                                                                                                                  {
                                                                                                                                    "if": {
                                                                                                                                      "type": "object",
                                                                                                                                      "required": [
                                                                                                                                        "enabled"
                                                                                                                                      ],
                                                                                                                                      "properties": {
                                                                                                                                        "enabled": {
                                                                                                                                          "const": false
                                                                                                                                        }
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "then": {
                                                                                                                                      "required": []
                                                                                                                                    },
                                                                                                                                    "else": {
                                                                                                                                      "required": [
                                                                                                                                        "events"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "required": [
                                                                                                                              "action"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "audit": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "enabled": {
                                                                                                                              "type": "boolean"
                                                                                                                            },
                                                                                                                            "events": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "name": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "message": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "conditions": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "var": {
                                                                                                                                          "description": "Specifies a variable to check.",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "operator": {
                                                                                                                                          "description": "Specifies an operator.",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ],
                                                                                                                                          "enum": [
                                                                                                                                            "=",
                                                                                                                                            "!=",
                                                                                                                                            "<=",
                                                                                                                                            ">=",
                                                                                                                                            ">",
                                                                                                                                            "<",
                                                                                                                                            "in",
                                                                                                                                            "not_in",
                                                                                                                                            "~",
                                                                                                                                            "~*",
                                                                                                                                            "!~",
                                                                                                                                            "!~*",
                                                                                                                                            "ip_range",
                                                                                                                                            "!ip_range",
                                                                                                                                            "dn_mask",
                                                                                                                                            "!dn_mask"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "val": {
                                                                                                                                          "description": "Specifies a value to check.",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "var",
                                                                                                                                        "operator",
                                                                                                                                        "val"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "fields": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "key": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "val": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "key",
                                                                                                                                        "val"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "name",
                                                                                                                                  "message"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "enabled"
                                                                                                                          ],
                                                                                                                          "allOf": [
                                                                                                                            {
                                                                                                                              "if": {
                                                                                                                                "type": "object",
                                                                                                                                "required": [
                                                                                                                                  "enabled"
                                                                                                                                ],
                                                                                                                                "properties": {
                                                                                                                                  "enabled": {
                                                                                                                                    "const": false
                                                                                                                                  }
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "then": {
                                                                                                                                "required": []
                                                                                                                              },
                                                                                                                              "else": {
                                                                                                                                "required": [
                                                                                                                                  "events"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            }
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "required": [
                                                                                                                        "action"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "audit": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "enabled": {
                                                                                                                        "type": "boolean"
                                                                                                                      },
                                                                                                                      "events": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "name": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "message": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "conditions": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "var": {
                                                                                                                                    "description": "Specifies a variable to check.",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "operator": {
                                                                                                                                    "description": "Specifies an operator.",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ],
                                                                                                                                    "enum": [
                                                                                                                                      "=",
                                                                                                                                      "!=",
                                                                                                                                      "<=",
                                                                                                                                      ">=",
                                                                                                                                      ">",
                                                                                                                                      "<",
                                                                                                                                      "in",
                                                                                                                                      "not_in",
                                                                                                                                      "~",
                                                                                                                                      "~*",
                                                                                                                                      "!~",
                                                                                                                                      "!~*",
                                                                                                                                      "ip_range",
                                                                                                                                      "!ip_range",
                                                                                                                                      "dn_mask",
                                                                                                                                      "!dn_mask"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "val": {
                                                                                                                                    "description": "Specifies a value to check.",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "var",
                                                                                                                                  "operator",
                                                                                                                                  "val"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "fields": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "key": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "val": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "key",
                                                                                                                                  "val"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "name",
                                                                                                                            "message"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "enabled"
                                                                                                                    ],
                                                                                                                    "allOf": [
                                                                                                                      {
                                                                                                                        "if": {
                                                                                                                          "type": "object",
                                                                                                                          "required": [
                                                                                                                            "enabled"
                                                                                                                          ],
                                                                                                                          "properties": {
                                                                                                                            "enabled": {
                                                                                                                              "const": false
                                                                                                                            }
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "then": {
                                                                                                                          "required": []
                                                                                                                        },
                                                                                                                        "else": {
                                                                                                                          "required": [
                                                                                                                            "events"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      }
                                                                                                                    ]
                                                                                                                  }
                                                                                                                },
                                                                                                                "required": [
                                                                                                                  "action"
                                                                                                                ]
                                                                                                              }
                                                                                                            },
                                                                                                            "audit": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "enabled": {
                                                                                                                  "type": "boolean"
                                                                                                                },
                                                                                                                "events": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "name": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "message": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "conditions": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "var": {
                                                                                                                              "description": "Specifies a variable to check.",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "operator": {
                                                                                                                              "description": "Specifies an operator.",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ],
                                                                                                                              "enum": [
                                                                                                                                "=",
                                                                                                                                "!=",
                                                                                                                                "<=",
                                                                                                                                ">=",
                                                                                                                                ">",
                                                                                                                                "<",
                                                                                                                                "in",
                                                                                                                                "not_in",
                                                                                                                                "~",
                                                                                                                                "~*",
                                                                                                                                "!~",
                                                                                                                                "!~*",
                                                                                                                                "ip_range",
                                                                                                                                "!ip_range",
                                                                                                                                "dn_mask",
                                                                                                                                "!dn_mask"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "val": {
                                                                                                                              "description": "Specifies a value to check.",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "var",
                                                                                                                            "operator",
                                                                                                                            "val"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "fields": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "key": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "val": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "key",
                                                                                                                            "val"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "name",
                                                                                                                      "message"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "enabled"
                                                                                                              ],
                                                                                                              "allOf": [
                                                                                                                {
                                                                                                                  "if": {
                                                                                                                    "type": "object",
                                                                                                                    "required": [
                                                                                                                      "enabled"
                                                                                                                    ],
                                                                                                                    "properties": {
                                                                                                                      "enabled": {
                                                                                                                        "const": false
                                                                                                                      }
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "then": {
                                                                                                                    "required": []
                                                                                                                  },
                                                                                                                  "else": {
                                                                                                                    "required": [
                                                                                                                      "events"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                }
                                                                                                              ]
                                                                                                            }
                                                                                                          },
                                                                                                          "required": [
                                                                                                            "action"
                                                                                                          ]
                                                                                                        }
                                                                                                      },
                                                                                                      "audit": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "enabled": {
                                                                                                            "type": "boolean"
                                                                                                          },
                                                                                                          "events": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "name": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "message": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "conditions": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "var": {
                                                                                                                        "description": "Specifies a variable to check.",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "operator": {
                                                                                                                        "description": "Specifies an operator.",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ],
                                                                                                                        "enum": [
                                                                                                                          "=",
                                                                                                                          "!=",
                                                                                                                          "<=",
                                                                                                                          ">=",
                                                                                                                          ">",
                                                                                                                          "<",
                                                                                                                          "in",
                                                                                                                          "not_in",
                                                                                                                          "~",
                                                                                                                          "~*",
                                                                                                                          "!~",
                                                                                                                          "!~*",
                                                                                                                          "ip_range",
                                                                                                                          "!ip_range",
                                                                                                                          "dn_mask",
                                                                                                                          "!dn_mask"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "val": {
                                                                                                                        "description": "Specifies a value to check.",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "var",
                                                                                                                      "operator",
                                                                                                                      "val"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                },
                                                                                                                "fields": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "key": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "val": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "key",
                                                                                                                      "val"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "name",
                                                                                                                "message"
                                                                                                              ]
                                                                                                            }
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "enabled"
                                                                                                        ],
                                                                                                        "allOf": [
                                                                                                          {
                                                                                                            "if": {
                                                                                                              "type": "object",
                                                                                                              "required": [
                                                                                                                "enabled"
                                                                                                              ],
                                                                                                              "properties": {
                                                                                                                "enabled": {
                                                                                                                  "const": false
                                                                                                                }
                                                                                                              }
                                                                                                            },
                                                                                                            "then": {
                                                                                                              "required": []
                                                                                                            },
                                                                                                            "else": {
                                                                                                              "required": [
                                                                                                                "events"
                                                                                                              ]
                                                                                                            }
                                                                                                          }
                                                                                                        ]
                                                                                                      }
                                                                                                    },
                                                                                                    "required": [
                                                                                                      "action"
                                                                                                    ]
                                                                                                  }
                                                                                                },
                                                                                                "audit": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "enabled": {
                                                                                                      "type": "boolean"
                                                                                                    },
                                                                                                    "events": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "name": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "message": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "conditions": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "var": {
                                                                                                                  "description": "Specifies a variable to check.",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "operator": {
                                                                                                                  "description": "Specifies an operator.",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ],
                                                                                                                  "enum": [
                                                                                                                    "=",
                                                                                                                    "!=",
                                                                                                                    "<=",
                                                                                                                    ">=",
                                                                                                                    ">",
                                                                                                                    "<",
                                                                                                                    "in",
                                                                                                                    "not_in",
                                                                                                                    "~",
                                                                                                                    "~*",
                                                                                                                    "!~",
                                                                                                                    "!~*",
                                                                                                                    "ip_range",
                                                                                                                    "!ip_range",
                                                                                                                    "dn_mask",
                                                                                                                    "!dn_mask"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "val": {
                                                                                                                  "description": "Specifies a value to check.",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "var",
                                                                                                                "operator",
                                                                                                                "val"
                                                                                                              ]
                                                                                                            }
                                                                                                          },
                                                                                                          "fields": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "key": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "val": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "key",
                                                                                                                "val"
                                                                                                              ]
                                                                                                            }
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "name",
                                                                                                          "message"
                                                                                                        ]
                                                                                                      }
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "enabled"
                                                                                                  ],
                                                                                                  "allOf": [
                                                                                                    {
                                                                                                      "if": {
                                                                                                        "type": "object",
                                                                                                        "required": [
                                                                                                          "enabled"
                                                                                                        ],
                                                                                                        "properties": {
                                                                                                          "enabled": {
                                                                                                            "const": false
                                                                                                          }
                                                                                                        }
                                                                                                      },
                                                                                                      "then": {
                                                                                                        "required": []
                                                                                                      },
                                                                                                      "else": {
                                                                                                        "required": [
                                                                                                          "events"
                                                                                                        ]
                                                                                                      }
                                                                                                    }
                                                                                                  ]
                                                                                                }
                                                                                              },
                                                                                              "required": [
                                                                                                "action"
                                                                                              ]
                                                                                            }
                                                                                          },
                                                                                          "audit": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "enabled": {
                                                                                                "type": "boolean"
                                                                                              },
                                                                                              "events": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "name": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "message": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "conditions": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "var": {
                                                                                                            "description": "Specifies a variable to check.",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "operator": {
                                                                                                            "description": "Specifies an operator.",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ],
                                                                                                            "enum": [
                                                                                                              "=",
                                                                                                              "!=",
                                                                                                              "<=",
                                                                                                              ">=",
                                                                                                              ">",
                                                                                                              "<",
                                                                                                              "in",
                                                                                                              "not_in",
                                                                                                              "~",
                                                                                                              "~*",
                                                                                                              "!~",
                                                                                                              "!~*",
                                                                                                              "ip_range",
                                                                                                              "!ip_range",
                                                                                                              "dn_mask",
                                                                                                              "!dn_mask"
                                                                                                            ]
                                                                                                          },
                                                                                                          "val": {
                                                                                                            "description": "Specifies a value to check.",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "var",
                                                                                                          "operator",
                                                                                                          "val"
                                                                                                        ]
                                                                                                      }
                                                                                                    },
                                                                                                    "fields": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "key": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "val": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "key",
                                                                                                          "val"
                                                                                                        ]
                                                                                                      }
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "name",
                                                                                                    "message"
                                                                                                  ]
                                                                                                }
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "enabled"
                                                                                            ],
                                                                                            "allOf": [
                                                                                              {
                                                                                                "if": {
                                                                                                  "type": "object",
                                                                                                  "required": [
                                                                                                    "enabled"
                                                                                                  ],
                                                                                                  "properties": {
                                                                                                    "enabled": {
                                                                                                      "const": false
                                                                                                    }
                                                                                                  }
                                                                                                },
                                                                                                "then": {
                                                                                                  "required": []
                                                                                                },
                                                                                                "else": {
                                                                                                  "required": [
                                                                                                    "events"
                                                                                                  ]
                                                                                                }
                                                                                              }
                                                                                            ]
                                                                                          }
                                                                                        },
                                                                                        "required": [
                                                                                          "action"
                                                                                        ]
                                                                                      }
                                                                                    },
                                                                                    "audit": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "enabled": {
                                                                                          "type": "boolean"
                                                                                        },
                                                                                        "events": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "name": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "message": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "conditions": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "var": {
                                                                                                      "description": "Specifies a variable to check.",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "operator": {
                                                                                                      "description": "Specifies an operator.",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ],
                                                                                                      "enum": [
                                                                                                        "=",
                                                                                                        "!=",
                                                                                                        "<=",
                                                                                                        ">=",
                                                                                                        ">",
                                                                                                        "<",
                                                                                                        "in",
                                                                                                        "not_in",
                                                                                                        "~",
                                                                                                        "~*",
                                                                                                        "!~",
                                                                                                        "!~*",
                                                                                                        "ip_range",
                                                                                                        "!ip_range",
                                                                                                        "dn_mask",
                                                                                                        "!dn_mask"
                                                                                                      ]
                                                                                                    },
                                                                                                    "val": {
                                                                                                      "description": "Specifies a value to check.",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "var",
                                                                                                    "operator",
                                                                                                    "val"
                                                                                                  ]
                                                                                                }
                                                                                              },
                                                                                              "fields": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "key": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "val": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "key",
                                                                                                    "val"
                                                                                                  ]
                                                                                                }
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "name",
                                                                                              "message"
                                                                                            ]
                                                                                          }
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "enabled"
                                                                                      ],
                                                                                      "allOf": [
                                                                                        {
                                                                                          "if": {
                                                                                            "type": "object",
                                                                                            "required": [
                                                                                              "enabled"
                                                                                            ],
                                                                                            "properties": {
                                                                                              "enabled": {
                                                                                                "const": false
                                                                                              }
                                                                                            }
                                                                                          },
                                                                                          "then": {
                                                                                            "required": []
                                                                                          },
                                                                                          "else": {
                                                                                            "required": [
                                                                                              "events"
                                                                                            ]
                                                                                          }
                                                                                        }
                                                                                      ]
                                                                                    }
                                                                                  },
                                                                                  "required": [
                                                                                    "action"
                                                                                  ]
                                                                                }
                                                                              },
                                                                              "audit": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "enabled": {
                                                                                    "type": "boolean"
                                                                                  },
                                                                                  "events": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "name": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "message": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "conditions": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "var": {
                                                                                                "description": "Specifies a variable to check.",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "operator": {
                                                                                                "description": "Specifies an operator.",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ],
                                                                                                "enum": [
                                                                                                  "=",
                                                                                                  "!=",
                                                                                                  "<=",
                                                                                                  ">=",
                                                                                                  ">",
                                                                                                  "<",
                                                                                                  "in",
                                                                                                  "not_in",
                                                                                                  "~",
                                                                                                  "~*",
                                                                                                  "!~",
                                                                                                  "!~*",
                                                                                                  "ip_range",
                                                                                                  "!ip_range",
                                                                                                  "dn_mask",
                                                                                                  "!dn_mask"
                                                                                                ]
                                                                                              },
                                                                                              "val": {
                                                                                                "description": "Specifies a value to check.",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "var",
                                                                                              "operator",
                                                                                              "val"
                                                                                            ]
                                                                                          }
                                                                                        },
                                                                                        "fields": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "key": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "val": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "key",
                                                                                              "val"
                                                                                            ]
                                                                                          }
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "name",
                                                                                        "message"
                                                                                      ]
                                                                                    }
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "enabled"
                                                                                ],
                                                                                "allOf": [
                                                                                  {
                                                                                    "if": {
                                                                                      "type": "object",
                                                                                      "required": [
                                                                                        "enabled"
                                                                                      ],
                                                                                      "properties": {
                                                                                        "enabled": {
                                                                                          "const": false
                                                                                        }
                                                                                      }
                                                                                    },
                                                                                    "then": {
                                                                                      "required": []
                                                                                    },
                                                                                    "else": {
                                                                                      "required": [
                                                                                        "events"
                                                                                      ]
                                                                                    }
                                                                                  }
                                                                                ]
                                                                              }
                                                                            },
                                                                            "required": [
                                                                              "action"
                                                                            ]
                                                                          }
                                                                        },
                                                                        "audit": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "enabled": {
                                                                              "type": "boolean"
                                                                            },
                                                                            "events": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "name": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "message": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "conditions": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "var": {
                                                                                          "description": "Specifies a variable to check.",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "operator": {
                                                                                          "description": "Specifies an operator.",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ],
                                                                                          "enum": [
                                                                                            "=",
                                                                                            "!=",
                                                                                            "<=",
                                                                                            ">=",
                                                                                            ">",
                                                                                            "<",
                                                                                            "in",
                                                                                            "not_in",
                                                                                            "~",
                                                                                            "~*",
                                                                                            "!~",
                                                                                            "!~*",
                                                                                            "ip_range",
                                                                                            "!ip_range",
                                                                                            "dn_mask",
                                                                                            "!dn_mask"
                                                                                          ]
                                                                                        },
                                                                                        "val": {
                                                                                          "description": "Specifies a value to check.",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "var",
                                                                                        "operator",
                                                                                        "val"
                                                                                      ]
                                                                                    }
                                                                                  },
                                                                                  "fields": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "key": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "val": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "key",
                                                                                        "val"
                                                                                      ]
                                                                                    }
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "name",
                                                                                  "message"
                                                                                ]
                                                                              }
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "enabled"
                                                                          ],
                                                                          "allOf": [
                                                                            {
                                                                              "if": {
                                                                                "type": "object",
                                                                                "required": [
                                                                                  "enabled"
                                                                                ],
                                                                                "properties": {
                                                                                  "enabled": {
                                                                                    "const": false
                                                                                  }
                                                                                }
                                                                              },
                                                                              "then": {
                                                                                "required": []
                                                                              },
                                                                              "else": {
                                                                                "required": [
                                                                                  "events"
                                                                                ]
                                                                              }
                                                                            }
                                                                          ]
                                                                        }
                                                                      },
                                                                      "required": [
                                                                        "action"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "audit": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "enabled": {
                                                                        "type": "boolean"
                                                                      },
                                                                      "events": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "name": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "message": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "conditions": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "var": {
                                                                                    "description": "Specifies a variable to check.",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "operator": {
                                                                                    "description": "Specifies an operator.",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ],
                                                                                    "enum": [
                                                                                      "=",
                                                                                      "!=",
                                                                                      "<=",
                                                                                      ">=",
                                                                                      ">",
                                                                                      "<",
                                                                                      "in",
                                                                                      "not_in",
                                                                                      "~",
                                                                                      "~*",
                                                                                      "!~",
                                                                                      "!~*",
                                                                                      "ip_range",
                                                                                      "!ip_range",
                                                                                      "dn_mask",
                                                                                      "!dn_mask"
                                                                                    ]
                                                                                  },
                                                                                  "val": {
                                                                                    "description": "Specifies a value to check.",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "var",
                                                                                  "operator",
                                                                                  "val"
                                                                                ]
                                                                              }
                                                                            },
                                                                            "fields": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "key": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "val": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "key",
                                                                                  "val"
                                                                                ]
                                                                              }
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "name",
                                                                            "message"
                                                                          ]
                                                                        }
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "enabled"
                                                                    ],
                                                                    "allOf": [
                                                                      {
                                                                        "if": {
                                                                          "type": "object",
                                                                          "required": [
                                                                            "enabled"
                                                                          ],
                                                                          "properties": {
                                                                            "enabled": {
                                                                              "const": false
                                                                            }
                                                                          }
                                                                        },
                                                                        "then": {
                                                                          "required": []
                                                                        },
                                                                        "else": {
                                                                          "required": [
                                                                            "events"
                                                                          ]
                                                                        }
                                                                      }
                                                                    ]
                                                                  }
                                                                },
                                                                "required": [
                                                                  "action"
                                                                ]
                                                              }
                                                            },
                                                            "audit": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "enabled": {
                                                                  "type": "boolean"
                                                                },
                                                                "events": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "name": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "message": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "conditions": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "var": {
                                                                              "description": "Specifies a variable to check.",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "operator": {
                                                                              "description": "Specifies an operator.",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ],
                                                                              "enum": [
                                                                                "=",
                                                                                "!=",
                                                                                "<=",
                                                                                ">=",
                                                                                ">",
                                                                                "<",
                                                                                "in",
                                                                                "not_in",
                                                                                "~",
                                                                                "~*",
                                                                                "!~",
                                                                                "!~*",
                                                                                "ip_range",
                                                                                "!ip_range",
                                                                                "dn_mask",
                                                                                "!dn_mask"
                                                                              ]
                                                                            },
                                                                            "val": {
                                                                              "description": "Specifies a value to check.",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "var",
                                                                            "operator",
                                                                            "val"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "fields": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "key": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "val": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "key",
                                                                            "val"
                                                                          ]
                                                                        }
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "name",
                                                                      "message"
                                                                    ]
                                                                  }
                                                                }
                                                              },
                                                              "required": [
                                                                "enabled"
                                                              ],
                                                              "allOf": [
                                                                {
                                                                  "if": {
                                                                    "type": "object",
                                                                    "required": [
                                                                      "enabled"
                                                                    ],
                                                                    "properties": {
                                                                      "enabled": {
                                                                        "const": false
                                                                      }
                                                                    }
                                                                  },
                                                                  "then": {
                                                                    "required": []
                                                                  },
                                                                  "else": {
                                                                    "required": [
                                                                      "events"
                                                                    ]
                                                                  }
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": [
                                                            "action"
                                                          ]
                                                        }
                                                      },
                                                      "audit": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "enabled": {
                                                            "type": "boolean"
                                                          },
                                                          "events": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "name": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "message": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "conditions": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "var": {
                                                                        "description": "Specifies a variable to check.",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "operator": {
                                                                        "description": "Specifies an operator.",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ],
                                                                        "enum": [
                                                                          "=",
                                                                          "!=",
                                                                          "<=",
                                                                          ">=",
                                                                          ">",
                                                                          "<",
                                                                          "in",
                                                                          "not_in",
                                                                          "~",
                                                                          "~*",
                                                                          "!~",
                                                                          "!~*",
                                                                          "ip_range",
                                                                          "!ip_range",
                                                                          "dn_mask",
                                                                          "!dn_mask"
                                                                        ]
                                                                      },
                                                                      "val": {
                                                                        "description": "Specifies a value to check.",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "var",
                                                                      "operator",
                                                                      "val"
                                                                    ]
                                                                  }
                                                                },
                                                                "fields": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "key": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "val": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "key",
                                                                      "val"
                                                                    ]
                                                                  }
                                                                }
                                                              },
                                                              "required": [
                                                                "name",
                                                                "message"
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "enabled"
                                                        ],
                                                        "allOf": [
                                                          {
                                                            "if": {
                                                              "type": "object",
                                                              "required": [
                                                                "enabled"
                                                              ],
                                                              "properties": {
                                                                "enabled": {
                                                                  "const": false
                                                                }
                                                              }
                                                            },
                                                            "then": {
                                                              "required": []
                                                            },
                                                            "else": {
                                                              "required": [
                                                                "events"
                                                              ]
                                                            }
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "action"
                                                    ]
                                                  }
                                                },
                                                "audit": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "enabled": {
                                                      "type": "boolean"
                                                    },
                                                    "events": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "name": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "message": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "conditions": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "var": {
                                                                  "description": "Specifies a variable to check.",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "operator": {
                                                                  "description": "Specifies an operator.",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ],
                                                                  "enum": [
                                                                    "=",
                                                                    "!=",
                                                                    "<=",
                                                                    ">=",
                                                                    ">",
                                                                    "<",
                                                                    "in",
                                                                    "not_in",
                                                                    "~",
                                                                    "~*",
                                                                    "!~",
                                                                    "!~*",
                                                                    "ip_range",
                                                                    "!ip_range",
                                                                    "dn_mask",
                                                                    "!dn_mask"
                                                                  ]
                                                                },
                                                                "val": {
                                                                  "description": "Specifies a value to check.",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                }
                                                              },
                                                              "required": [
                                                                "var",
                                                                "operator",
                                                                "val"
                                                              ]
                                                            }
                                                          },
                                                          "fields": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "key": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "val": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                }
                                                              },
                                                              "required": [
                                                                "key",
                                                                "val"
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "name",
                                                          "message"
                                                        ]
                                                      }
                                                    }
                                                  },
                                                  "required": [
                                                    "enabled"
                                                  ],
                                                  "allOf": [
                                                    {
                                                      "if": {
                                                        "type": "object",
                                                        "required": [
                                                          "enabled"
                                                        ],
                                                        "properties": {
                                                          "enabled": {
                                                            "const": false
                                                          }
                                                        }
                                                      },
                                                      "then": {
                                                        "required": []
                                                      },
                                                      "else": {
                                                        "required": [
                                                          "events"
                                                        ]
                                                      }
                                                    }
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "action"
                                              ]
                                            }
                                          },
                                          "audit": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "enabled": {
                                                "type": "boolean"
                                              },
                                              "events": {
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "name": {
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "message": {
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "conditions": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "var": {
                                                            "description": "Specifies a variable to check.",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "operator": {
                                                            "description": "Specifies an operator.",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ],
                                                            "enum": [
                                                              "=",
                                                              "!=",
                                                              "<=",
                                                              ">=",
                                                              ">",
                                                              "<",
                                                              "in",
                                                              "not_in",
                                                              "~",
                                                              "~*",
                                                              "!~",
                                                              "!~*",
                                                              "ip_range",
                                                              "!ip_range",
                                                              "dn_mask",
                                                              "!dn_mask"
                                                            ]
                                                          },
                                                          "val": {
                                                            "description": "Specifies a value to check.",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "var",
                                                          "operator",
                                                          "val"
                                                        ]
                                                      }
                                                    },
                                                    "fields": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "key": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "val": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "key",
                                                          "val"
                                                        ]
                                                      }
                                                    }
                                                  },
                                                  "required": [
                                                    "name",
                                                    "message"
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "enabled"
                                            ],
                                            "allOf": [
                                              {
                                                "if": {
                                                  "type": "object",
                                                  "required": [
                                                    "enabled"
                                                  ],
                                                  "properties": {
                                                    "enabled": {
                                                      "const": false
                                                    }
                                                  }
                                                },
                                                "then": {
                                                  "required": []
                                                },
                                                "else": {
                                                  "required": [
                                                    "events"
                                                  ]
                                                }
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "action"
                                        ]
                                      }
                                    },
                                    "audit": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "enabled": {
                                          "type": "boolean"
                                        },
                                        "events": {
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "name": {
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              },
                                              "message": {
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              },
                                              "conditions": {
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "var": {
                                                      "description": "Specifies a variable to check.",
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "operator": {
                                                      "description": "Specifies an operator.",
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ],
                                                      "enum": [
                                                        "=",
                                                        "!=",
                                                        "<=",
                                                        ">=",
                                                        ">",
                                                        "<",
                                                        "in",
                                                        "not_in",
                                                        "~",
                                                        "~*",
                                                        "!~",
                                                        "!~*",
                                                        "ip_range",
                                                        "!ip_range",
                                                        "dn_mask",
                                                        "!dn_mask"
                                                      ]
                                                    },
                                                    "val": {
                                                      "description": "Specifies a value to check.",
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "var",
                                                    "operator",
                                                    "val"
                                                  ]
                                                }
                                              },
                                              "fields": {
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "key": {
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "val": {
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "key",
                                                    "val"
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "name",
                                              "message"
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "enabled"
                                      ],
                                      "allOf": [
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "enabled"
                                            ],
                                            "properties": {
                                              "enabled": {
                                                "const": false
                                              }
                                            }
                                          },
                                          "then": {
                                            "required": []
                                          },
                                          "else": {
                                            "required": [
                                              "events"
                                            ]
                                          }
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "action"
                                  ]
                                }
                              },
                              "audit": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "enabled": {
                                    "type": "boolean"
                                  },
                                  "events": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "name": {
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "message": {
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "conditions": {
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "var": {
                                                "description": "Specifies a variable to check.",
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              },
                                              "operator": {
                                                "description": "Specifies an operator.",
                                                "type": [
                                                  "number",
                                                  "string"
                                                ],
                                                "enum": [
                                                  "=",
                                                  "!=",
                                                  "<=",
                                                  ">=",
                                                  ">",
                                                  "<",
                                                  "in",
                                                  "not_in",
                                                  "~",
                                                  "~*",
                                                  "!~",
                                                  "!~*",
                                                  "ip_range",
                                                  "!ip_range",
                                                  "dn_mask",
                                                  "!dn_mask"
                                                ]
                                              },
                                              "val": {
                                                "description": "Specifies a value to check.",
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "var",
                                              "operator",
                                              "val"
                                            ]
                                          }
                                        },
                                        "fields": {
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "key": {
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              },
                                              "val": {
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "key",
                                              "val"
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "name",
                                        "message"
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "enabled"
                                ],
                                "allOf": [
                                  {
                                    "if": {
                                      "type": "object",
                                      "required": [
                                        "enabled"
                                      ],
                                      "properties": {
                                        "enabled": {
                                          "const": false
                                        }
                                      }
                                    },
                                    "then": {
                                      "required": []
                                    },
                                    "else": {
                                      "required": [
                                        "events"
                                      ]
                                    }
                                  }
                                ]
                              }
                            },
                            "required": [
                              "action"
                            ]
                          }
                        },
                        "audit": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "enabled": {
                              "type": "boolean"
                            },
                            "events": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "name": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "message": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "conditions": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "var": {
                                          "description": "Specifies a variable to check.",
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "operator": {
                                          "description": "Specifies an operator.",
                                          "type": [
                                            "number",
                                            "string"
                                          ],
                                          "enum": [
                                            "=",
                                            "!=",
                                            "<=",
                                            ">=",
                                            ">",
                                            "<",
                                            "in",
                                            "not_in",
                                            "~",
                                            "~*",
                                            "!~",
                                            "!~*",
                                            "ip_range",
                                            "!ip_range",
                                            "dn_mask",
                                            "!dn_mask"
                                          ]
                                        },
                                        "val": {
                                          "description": "Specifies a value to check.",
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "var",
                                        "operator",
                                        "val"
                                      ]
                                    }
                                  },
                                  "fields": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "key": {
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "val": {
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "key",
                                        "val"
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "name",
                                  "message"
                                ]
                              }
                            }
                          },
                          "required": [
                            "enabled"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "enabled"
                                ],
                                "properties": {
                                  "enabled": {
                                    "const": false
                                  }
                                }
                              },
                              "then": {
                                "required": []
                              },
                              "else": {
                                "required": [
                                  "events"
                                ]
                              }
                            }
                          ]
                        }
                      }
                    }
                  },
                  "request_chain_properties": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "error_state_code": {
                        "type": "integer"
                      },
                      "failed_check_state_code": {
                        "type": "integer"
                      },
                      "max_buffer_size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "max_inmemory_size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "output_buffer_size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "input_buffer_size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "temp_file_path": {
                        "description": "Directory to save temp files. Default is /tmp",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "resp_gen_rules_file": {
                        "description": "Specifies the YAML rule file which describes how to fill pattern file.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "resp_gen_content_type": {
                        "description": "Specifies content type for response header. Default - none.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "resp_gen_pattern_file": {
                        "description": "Specifies pattern file.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "trace_config": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enableAllActions": {
                            "description": "enable tracing of all actions in chains",
                            "type": "boolean"
                          },
                          "enableAllChains": {
                            "description": "enable tracing of all actions in child chains",
                            "type": "boolean"
                          },
                          "mode": {
                            "description": "Enable or disable tracing at this level.",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "enabled": {
                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "on",
                                  "off",
                                  "var_based"
                                ]
                              },
                              "var": {
                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            }
                          },
                          "spanAttributes": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "description": "name of attribute",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "value": {
                                  "description": "value of attribute, can contain variables",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                }
                              }
                            }
                          },
                          "spanName": {
                            "description": "Specify name of span",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "enableSocketsTracing": {
                            "description": "Enable or disable socket tracing, by default enabled",
                            "type": "boolean"
                          }
                        }
                      },
                      "requiredActionOneOf": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "accessPhase": {},
                          "rewritePhase": {}
                        }
                      }
                    }
                  },
                  "response_chains": {
                    "description": "Specifies chain of actions for the response.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "message": {
                          "description": "Text for analysis. May contain variables. E.g. $shared_request_body",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "streaming": {
                          "description": "When set to true and server_streaming enabled, chain used on parsed stream messages, otherwise ignored. When set to false(by default), chain applied for non-streamable responses, response status line and response headers of streaming responses",
                          "type": "boolean"
                        },
                        "requiredChildOneOf": {
                          "description": "Specifies unverifed action check",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "decision": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "BLOCK",
                                "WARN"
                              ]
                            },
                            "onlyCheckers": {
                              "type": "boolean"
                            },
                            "include": {
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            },
                            "exclude": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "required": [
                            "decision"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "exclude"
                                ],
                                "properties": {
                                  "exclude": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "include"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "include"
                                ],
                                "properties": {
                                  "include": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "exclude"
                                  ]
                                }
                              }
                            }
                          ]
                        },
                        "actions": {
                          "description": "Specifies a list of actions.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "action": {
                                "description": "Specifies an action to perform",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "ASN1ContentExtractor",
                                  "Base64Decode",
                                  "ConditionChecker",
                                  "CheckDataSize",
                                  "CheckMimeType",
                                  "JsonPathExtract",
                                  "JsonPathExtractToVars",
                                  "JsonValidation",
                                  "XsdValidation",
                                  "PostFormDataToFlateJson",
                                  "MultipartExtract",
                                  "SetMessageFromVar",
                                  "SetVarFromMessage",
                                  "JwsToJson",
                                  "XPathExtract",
                                  "XPathExtractToVars",
                                  "SharedMapDeleter",
                                  "SharedMapRemover",
                                  "SharedMapSetter",
                                  "SharedMapGetter",
                                  "RandomNumberToVar",
                                  "VarsToSharedMap",
                                  "SharedMapToVars",
                                  "AntivirusFileChecker",
                                  "MtomExtractor",
                                  "JsonTransformer",
                                  "SetVar",
                                  "GraphQLRequestValidation",
                                  "ProtobufValidation",
                                  "OpenApiValidation",
                                  "DelimiterSplitter",
                                  "VarsToFile",
                                  "FileToVars",
                                  "WsdlValidation",
                                  "HttpFilter",
                                  "ProtobufToJson",
                                  "FilterMds",
                                  "OcspSignValidator",
                                  "OcspToJson",
                                  "ASN1ToJson",
                                  "XmlTransformer",
                                  "UrlEncode",
                                  "UrlDecodeUni",
                                  "UrlDecode",
                                  "HexDecode",
                                  "HexEncode",
                                  "ToLowerCase",
                                  "ToUpperCase",
                                  "Utf8ToUnicode",
                                  "Trim",
                                  "ICAPFileChecker",
                                  "MessageToFile",
                                  "MultipartFormGenerateFromVar",
                                  "HttpSender",
                                  "MessageAccumulator",
                                  "MessageFromAccumulator",
                                  "MessageFromPattern",
                                  "MultipartFormGenerateFromMessage",
                                  "JsonPatchMessage",
                                  "JsonPatchVar",
                                  "DigestFromMessage",
                                  "Base64Encode",
                                  "HMac",
                                  "FileToMessage",
                                  "JwtVerifier",
                                  "CharsetChecker",
                                  "LdapSearch",
                                  "UnicodeDecode",
                                  "MessageMapper",
                                  "SimpleRateLimiter",
                                  "EventSourceConverter",
                                  "LazySessionTimeChecker",
                                  "CalculateMessageProperties"
                                ]
                              },
                              "id": {
                                "description": "An identificator of action",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "conditions": {
                                "description": "Specifies the conditions for performina an action.",
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "var": {
                                      "description": "Specifies a variable to check.",
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    },
                                    "operator": {
                                      "description": "Specifies an operator.",
                                      "type": [
                                        "number",
                                        "string"
                                      ],
                                      "enum": [
                                        "=",
                                        "!=",
                                        "<=",
                                        ">=",
                                        ">",
                                        "<",
                                        "in",
                                        "not_in",
                                        "~",
                                        "~*",
                                        "!~",
                                        "!~*",
                                        "ip_range",
                                        "!ip_range",
                                        "dn_mask",
                                        "!dn_mask"
                                      ]
                                    },
                                    "val": {
                                      "description": "Specifies a value to check.",
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "var",
                                    "operator",
                                    "val"
                                  ]
                                }
                              },
                              "trace_config": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "enableAllActions": {
                                    "description": "enable tracing of all actions in chains",
                                    "type": "boolean"
                                  },
                                  "enableAllChains": {
                                    "description": "enable tracing of all actions in child chains",
                                    "type": "boolean"
                                  },
                                  "mode": {
                                    "description": "Enable or disable tracing at this level.",
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "enabled": {
                                        "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                        "type": [
                                          "number",
                                          "string"
                                        ],
                                        "enum": [
                                          "on",
                                          "off",
                                          "var_based"
                                        ]
                                      },
                                      "var": {
                                        "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                        "type": [
                                          "number",
                                          "string"
                                        ]
                                      }
                                    }
                                  },
                                  "spanAttributes": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "name": {
                                          "description": "name of attribute",
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "value": {
                                          "description": "value of attribute, can contain variables",
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "spanName": {
                                    "description": "Specify name of span",
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "enableSocketsTracing": {
                                    "description": "Enable or disable socket tracing, by default enabled",
                                    "type": "boolean"
                                  }
                                }
                              },
                              "params": {
                                "description": "Specifies extra parameters for the actions.",
                                "type": "object",
                                "additionalProperties": true
                              },
                              "requiredChildOneOf": {
                                "description": "Specifies unverifed action check",
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "decision": {
                                    "type": [
                                      "number",
                                      "string"
                                    ],
                                    "enum": [
                                      "BLOCK",
                                      "WARN"
                                    ]
                                  },
                                  "onlyCheckers": {
                                    "type": "boolean"
                                  },
                                  "include": {
                                    "type": "array",
                                    "items": {
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    }
                                  },
                                  "exclude": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  }
                                },
                                "required": [
                                  "decision"
                                ],
                                "allOf": [
                                  {
                                    "if": {
                                      "type": "object",
                                      "required": [
                                        "exclude"
                                      ],
                                      "properties": {
                                        "exclude": {}
                                      }
                                    },
                                    "then": {
                                      "not": {
                                        "required": [
                                          "include"
                                        ]
                                      }
                                    }
                                  },
                                  {
                                    "if": {
                                      "type": "object",
                                      "required": [
                                        "include"
                                      ],
                                      "properties": {
                                        "include": {}
                                      }
                                    },
                                    "then": {
                                      "not": {
                                        "required": [
                                          "exclude"
                                        ]
                                      }
                                    }
                                  }
                                ]
                              },
                              "actions": {
                                "description": "Specifies a list of actions.",
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "action": {
                                      "description": "Specifies an action to perform",
                                      "type": [
                                        "number",
                                        "string"
                                      ],
                                      "enum": [
                                        "ASN1ContentExtractor",
                                        "Base64Decode",
                                        "ConditionChecker",
                                        "CheckDataSize",
                                        "CheckMimeType",
                                        "JsonPathExtract",
                                        "JsonPathExtractToVars",
                                        "JsonValidation",
                                        "XsdValidation",
                                        "PostFormDataToFlateJson",
                                        "MultipartExtract",
                                        "SetMessageFromVar",
                                        "SetVarFromMessage",
                                        "JwsToJson",
                                        "XPathExtract",
                                        "XPathExtractToVars",
                                        "SharedMapDeleter",
                                        "SharedMapRemover",
                                        "SharedMapSetter",
                                        "SharedMapGetter",
                                        "RandomNumberToVar",
                                        "VarsToSharedMap",
                                        "SharedMapToVars",
                                        "AntivirusFileChecker",
                                        "MtomExtractor",
                                        "JsonTransformer",
                                        "SetVar",
                                        "GraphQLRequestValidation",
                                        "ProtobufValidation",
                                        "OpenApiValidation",
                                        "DelimiterSplitter",
                                        "VarsToFile",
                                        "FileToVars",
                                        "WsdlValidation",
                                        "HttpFilter",
                                        "ProtobufToJson",
                                        "FilterMds",
                                        "OcspSignValidator",
                                        "OcspToJson",
                                        "ASN1ToJson",
                                        "XmlTransformer",
                                        "UrlEncode",
                                        "UrlDecodeUni",
                                        "UrlDecode",
                                        "HexDecode",
                                        "HexEncode",
                                        "ToLowerCase",
                                        "ToUpperCase",
                                        "Utf8ToUnicode",
                                        "Trim",
                                        "ICAPFileChecker",
                                        "MessageToFile",
                                        "MultipartFormGenerateFromVar",
                                        "HttpSender",
                                        "MessageAccumulator",
                                        "MessageFromAccumulator",
                                        "MessageFromPattern",
                                        "MultipartFormGenerateFromMessage",
                                        "JsonPatchMessage",
                                        "JsonPatchVar",
                                        "DigestFromMessage",
                                        "Base64Encode",
                                        "HMac",
                                        "FileToMessage",
                                        "JwtVerifier",
                                        "CharsetChecker",
                                        "LdapSearch",
                                        "UnicodeDecode",
                                        "MessageMapper",
                                        "SimpleRateLimiter",
                                        "EventSourceConverter",
                                        "LazySessionTimeChecker",
                                        "CalculateMessageProperties"
                                      ]
                                    },
                                    "id": {
                                      "description": "An identificator of action",
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    },
                                    "conditions": {
                                      "description": "Specifies the conditions for performina an action.",
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "additionalProperties": false,
                                        "properties": {
                                          "var": {
                                            "description": "Specifies a variable to check.",
                                            "type": [
                                              "number",
                                              "string"
                                            ]
                                          },
                                          "operator": {
                                            "description": "Specifies an operator.",
                                            "type": [
                                              "number",
                                              "string"
                                            ],
                                            "enum": [
                                              "=",
                                              "!=",
                                              "<=",
                                              ">=",
                                              ">",
                                              "<",
                                              "in",
                                              "not_in",
                                              "~",
                                              "~*",
                                              "!~",
                                              "!~*",
                                              "ip_range",
                                              "!ip_range",
                                              "dn_mask",
                                              "!dn_mask"
                                            ]
                                          },
                                          "val": {
                                            "description": "Specifies a value to check.",
                                            "type": [
                                              "number",
                                              "string"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "var",
                                          "operator",
                                          "val"
                                        ]
                                      }
                                    },
                                    "trace_config": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "enableAllActions": {
                                          "description": "enable tracing of all actions in chains",
                                          "type": "boolean"
                                        },
                                        "enableAllChains": {
                                          "description": "enable tracing of all actions in child chains",
                                          "type": "boolean"
                                        },
                                        "mode": {
                                          "description": "Enable or disable tracing at this level.",
                                          "type": "object",
                                          "additionalProperties": false,
                                          "properties": {
                                            "enabled": {
                                              "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                              "type": [
                                                "number",
                                                "string"
                                              ],
                                              "enum": [
                                                "on",
                                                "off",
                                                "var_based"
                                              ]
                                            },
                                            "var": {
                                              "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                              "type": [
                                                "number",
                                                "string"
                                              ]
                                            }
                                          }
                                        },
                                        "spanAttributes": {
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "name": {
                                                "description": "name of attribute",
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              },
                                              "value": {
                                                "description": "value of attribute, can contain variables",
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              }
                                            }
                                          }
                                        },
                                        "spanName": {
                                          "description": "Specify name of span",
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "enableSocketsTracing": {
                                          "description": "Enable or disable socket tracing, by default enabled",
                                          "type": "boolean"
                                        }
                                      }
                                    },
                                    "params": {
                                      "description": "Specifies extra parameters for the actions.",
                                      "type": "object",
                                      "additionalProperties": true
                                    },
                                    "requiredChildOneOf": {
                                      "description": "Specifies unverifed action check",
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "decision": {
                                          "type": [
                                            "number",
                                            "string"
                                          ],
                                          "enum": [
                                            "BLOCK",
                                            "WARN"
                                          ]
                                        },
                                        "onlyCheckers": {
                                          "type": "boolean"
                                        },
                                        "include": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "number",
                                              "string"
                                            ]
                                          }
                                        },
                                        "exclude": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        }
                                      },
                                      "required": [
                                        "decision"
                                      ],
                                      "allOf": [
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "exclude"
                                            ],
                                            "properties": {
                                              "exclude": {}
                                            }
                                          },
                                          "then": {
                                            "not": {
                                              "required": [
                                                "include"
                                              ]
                                            }
                                          }
                                        },
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "include"
                                            ],
                                            "properties": {
                                              "include": {}
                                            }
                                          },
                                          "then": {
                                            "not": {
                                              "required": [
                                                "exclude"
                                              ]
                                            }
                                          }
                                        }
                                      ]
                                    },
                                    "actions": {
                                      "description": "Specifies a list of actions.",
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "additionalProperties": false,
                                        "properties": {
                                          "action": {
                                            "description": "Specifies an action to perform",
                                            "type": [
                                              "number",
                                              "string"
                                            ],
                                            "enum": [
                                              "ASN1ContentExtractor",
                                              "Base64Decode",
                                              "ConditionChecker",
                                              "CheckDataSize",
                                              "CheckMimeType",
                                              "JsonPathExtract",
                                              "JsonPathExtractToVars",
                                              "JsonValidation",
                                              "XsdValidation",
                                              "PostFormDataToFlateJson",
                                              "MultipartExtract",
                                              "SetMessageFromVar",
                                              "SetVarFromMessage",
                                              "JwsToJson",
                                              "XPathExtract",
                                              "XPathExtractToVars",
                                              "SharedMapDeleter",
                                              "SharedMapRemover",
                                              "SharedMapSetter",
                                              "SharedMapGetter",
                                              "RandomNumberToVar",
                                              "VarsToSharedMap",
                                              "SharedMapToVars",
                                              "AntivirusFileChecker",
                                              "MtomExtractor",
                                              "JsonTransformer",
                                              "SetVar",
                                              "GraphQLRequestValidation",
                                              "ProtobufValidation",
                                              "OpenApiValidation",
                                              "DelimiterSplitter",
                                              "VarsToFile",
                                              "FileToVars",
                                              "WsdlValidation",
                                              "HttpFilter",
                                              "ProtobufToJson",
                                              "FilterMds",
                                              "OcspSignValidator",
                                              "OcspToJson",
                                              "ASN1ToJson",
                                              "XmlTransformer",
                                              "UrlEncode",
                                              "UrlDecodeUni",
                                              "UrlDecode",
                                              "HexDecode",
                                              "HexEncode",
                                              "ToLowerCase",
                                              "ToUpperCase",
                                              "Utf8ToUnicode",
                                              "Trim",
                                              "ICAPFileChecker",
                                              "MessageToFile",
                                              "MultipartFormGenerateFromVar",
                                              "HttpSender",
                                              "MessageAccumulator",
                                              "MessageFromAccumulator",
                                              "MessageFromPattern",
                                              "MultipartFormGenerateFromMessage",
                                              "JsonPatchMessage",
                                              "JsonPatchVar",
                                              "DigestFromMessage",
                                              "Base64Encode",
                                              "HMac",
                                              "FileToMessage",
                                              "JwtVerifier",
                                              "CharsetChecker",
                                              "LdapSearch",
                                              "UnicodeDecode",
                                              "MessageMapper",
                                              "SimpleRateLimiter",
                                              "EventSourceConverter",
                                              "LazySessionTimeChecker",
                                              "CalculateMessageProperties"
                                            ]
                                          },
                                          "id": {
                                            "description": "An identificator of action",
                                            "type": [
                                              "number",
                                              "string"
                                            ]
                                          },
                                          "conditions": {
                                            "description": "Specifies the conditions for performina an action.",
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "additionalProperties": false,
                                              "properties": {
                                                "var": {
                                                  "description": "Specifies a variable to check.",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                },
                                                "operator": {
                                                  "description": "Specifies an operator.",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ],
                                                  "enum": [
                                                    "=",
                                                    "!=",
                                                    "<=",
                                                    ">=",
                                                    ">",
                                                    "<",
                                                    "in",
                                                    "not_in",
                                                    "~",
                                                    "~*",
                                                    "!~",
                                                    "!~*",
                                                    "ip_range",
                                                    "!ip_range",
                                                    "dn_mask",
                                                    "!dn_mask"
                                                  ]
                                                },
                                                "val": {
                                                  "description": "Specifies a value to check.",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "var",
                                                "operator",
                                                "val"
                                              ]
                                            }
                                          },
                                          "trace_config": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "enableAllActions": {
                                                "description": "enable tracing of all actions in chains",
                                                "type": "boolean"
                                              },
                                              "enableAllChains": {
                                                "description": "enable tracing of all actions in child chains",
                                                "type": "boolean"
                                              },
                                              "mode": {
                                                "description": "Enable or disable tracing at this level.",
                                                "type": "object",
                                                "additionalProperties": false,
                                                "properties": {
                                                  "enabled": {
                                                    "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                    "type": [
                                                      "number",
                                                      "string"
                                                    ],
                                                    "enum": [
                                                      "on",
                                                      "off",
                                                      "var_based"
                                                    ]
                                                  },
                                                  "var": {
                                                    "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                    "type": [
                                                      "number",
                                                      "string"
                                                    ]
                                                  }
                                                }
                                              },
                                              "spanAttributes": {
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "name": {
                                                      "description": "name of attribute",
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "value": {
                                                      "description": "value of attribute, can contain variables",
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    }
                                                  }
                                                }
                                              },
                                              "spanName": {
                                                "description": "Specify name of span",
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              },
                                              "enableSocketsTracing": {
                                                "description": "Enable or disable socket tracing, by default enabled",
                                                "type": "boolean"
                                              }
                                            }
                                          },
                                          "params": {
                                            "description": "Specifies extra parameters for the actions.",
                                            "type": "object",
                                            "additionalProperties": true
                                          },
                                          "requiredChildOneOf": {
                                            "description": "Specifies unverifed action check",
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "decision": {
                                                "type": [
                                                  "number",
                                                  "string"
                                                ],
                                                "enum": [
                                                  "BLOCK",
                                                  "WARN"
                                                ]
                                              },
                                              "onlyCheckers": {
                                                "type": "boolean"
                                              },
                                              "include": {
                                                "type": "array",
                                                "items": {
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                }
                                              },
                                              "exclude": {
                                                "type": "array",
                                                "items": {
                                                  "type": "string"
                                                }
                                              }
                                            },
                                            "required": [
                                              "decision"
                                            ],
                                            "allOf": [
                                              {
                                                "if": {
                                                  "type": "object",
                                                  "required": [
                                                    "exclude"
                                                  ],
                                                  "properties": {
                                                    "exclude": {}
                                                  }
                                                },
                                                "then": {
                                                  "not": {
                                                    "required": [
                                                      "include"
                                                    ]
                                                  }
                                                }
                                              },
                                              {
                                                "if": {
                                                  "type": "object",
                                                  "required": [
                                                    "include"
                                                  ],
                                                  "properties": {
                                                    "include": {}
                                                  }
                                                },
                                                "then": {
                                                  "not": {
                                                    "required": [
                                                      "exclude"
                                                    ]
                                                  }
                                                }
                                              }
                                            ]
                                          },
                                          "actions": {
                                            "description": "Specifies a list of actions.",
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "additionalProperties": false,
                                              "properties": {
                                                "action": {
                                                  "description": "Specifies an action to perform",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ],
                                                  "enum": [
                                                    "ASN1ContentExtractor",
                                                    "Base64Decode",
                                                    "ConditionChecker",
                                                    "CheckDataSize",
                                                    "CheckMimeType",
                                                    "JsonPathExtract",
                                                    "JsonPathExtractToVars",
                                                    "JsonValidation",
                                                    "XsdValidation",
                                                    "PostFormDataToFlateJson",
                                                    "MultipartExtract",
                                                    "SetMessageFromVar",
                                                    "SetVarFromMessage",
                                                    "JwsToJson",
                                                    "XPathExtract",
                                                    "XPathExtractToVars",
                                                    "SharedMapDeleter",
                                                    "SharedMapRemover",
                                                    "SharedMapSetter",
                                                    "SharedMapGetter",
                                                    "RandomNumberToVar",
                                                    "VarsToSharedMap",
                                                    "SharedMapToVars",
                                                    "AntivirusFileChecker",
                                                    "MtomExtractor",
                                                    "JsonTransformer",
                                                    "SetVar",
                                                    "GraphQLRequestValidation",
                                                    "ProtobufValidation",
                                                    "OpenApiValidation",
                                                    "DelimiterSplitter",
                                                    "VarsToFile",
                                                    "FileToVars",
                                                    "WsdlValidation",
                                                    "HttpFilter",
                                                    "ProtobufToJson",
                                                    "FilterMds",
                                                    "OcspSignValidator",
                                                    "OcspToJson",
                                                    "ASN1ToJson",
                                                    "XmlTransformer",
                                                    "UrlEncode",
                                                    "UrlDecodeUni",
                                                    "UrlDecode",
                                                    "HexDecode",
                                                    "HexEncode",
                                                    "ToLowerCase",
                                                    "ToUpperCase",
                                                    "Utf8ToUnicode",
                                                    "Trim",
                                                    "ICAPFileChecker",
                                                    "MessageToFile",
                                                    "MultipartFormGenerateFromVar",
                                                    "HttpSender",
                                                    "MessageAccumulator",
                                                    "MessageFromAccumulator",
                                                    "MessageFromPattern",
                                                    "MultipartFormGenerateFromMessage",
                                                    "JsonPatchMessage",
                                                    "JsonPatchVar",
                                                    "DigestFromMessage",
                                                    "Base64Encode",
                                                    "HMac",
                                                    "FileToMessage",
                                                    "JwtVerifier",
                                                    "CharsetChecker",
                                                    "LdapSearch",
                                                    "UnicodeDecode",
                                                    "MessageMapper",
                                                    "SimpleRateLimiter",
                                                    "EventSourceConverter",
                                                    "LazySessionTimeChecker",
                                                    "CalculateMessageProperties"
                                                  ]
                                                },
                                                "id": {
                                                  "description": "An identificator of action",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                },
                                                "conditions": {
                                                  "description": "Specifies the conditions for performina an action.",
                                                  "type": "array",
                                                  "items": {
                                                    "type": "object",
                                                    "additionalProperties": false,
                                                    "properties": {
                                                      "var": {
                                                        "description": "Specifies a variable to check.",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ]
                                                      },
                                                      "operator": {
                                                        "description": "Specifies an operator.",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ],
                                                        "enum": [
                                                          "=",
                                                          "!=",
                                                          "<=",
                                                          ">=",
                                                          ">",
                                                          "<",
                                                          "in",
                                                          "not_in",
                                                          "~",
                                                          "~*",
                                                          "!~",
                                                          "!~*",
                                                          "ip_range",
                                                          "!ip_range",
                                                          "dn_mask",
                                                          "!dn_mask"
                                                        ]
                                                      },
                                                      "val": {
                                                        "description": "Specifies a value to check.",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "var",
                                                      "operator",
                                                      "val"
                                                    ]
                                                  }
                                                },
                                                "trace_config": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "enableAllActions": {
                                                      "description": "enable tracing of all actions in chains",
                                                      "type": "boolean"
                                                    },
                                                    "enableAllChains": {
                                                      "description": "enable tracing of all actions in child chains",
                                                      "type": "boolean"
                                                    },
                                                    "mode": {
                                                      "description": "Enable or disable tracing at this level.",
                                                      "type": "object",
                                                      "additionalProperties": false,
                                                      "properties": {
                                                        "enabled": {
                                                          "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                          "type": [
                                                            "number",
                                                            "string"
                                                          ],
                                                          "enum": [
                                                            "on",
                                                            "off",
                                                            "var_based"
                                                          ]
                                                        },
                                                        "var": {
                                                          "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                          "type": [
                                                            "number",
                                                            "string"
                                                          ]
                                                        }
                                                      }
                                                    },
                                                    "spanAttributes": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "name": {
                                                            "description": "name of attribute",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "value": {
                                                            "description": "value of attribute, can contain variables",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          }
                                                        }
                                                      }
                                                    },
                                                    "spanName": {
                                                      "description": "Specify name of span",
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "enableSocketsTracing": {
                                                      "description": "Enable or disable socket tracing, by default enabled",
                                                      "type": "boolean"
                                                    }
                                                  }
                                                },
                                                "params": {
                                                  "description": "Specifies extra parameters for the actions.",
                                                  "type": "object",
                                                  "additionalProperties": true
                                                },
                                                "requiredChildOneOf": {
                                                  "description": "Specifies unverifed action check",
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "decision": {
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ],
                                                      "enum": [
                                                        "BLOCK",
                                                        "WARN"
                                                      ]
                                                    },
                                                    "onlyCheckers": {
                                                      "type": "boolean"
                                                    },
                                                    "include": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ]
                                                      }
                                                    },
                                                    "exclude": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "string"
                                                      }
                                                    }
                                                  },
                                                  "required": [
                                                    "decision"
                                                  ],
                                                  "allOf": [
                                                    {
                                                      "if": {
                                                        "type": "object",
                                                        "required": [
                                                          "exclude"
                                                        ],
                                                        "properties": {
                                                          "exclude": {}
                                                        }
                                                      },
                                                      "then": {
                                                        "not": {
                                                          "required": [
                                                            "include"
                                                          ]
                                                        }
                                                      }
                                                    },
                                                    {
                                                      "if": {
                                                        "type": "object",
                                                        "required": [
                                                          "include"
                                                        ],
                                                        "properties": {
                                                          "include": {}
                                                        }
                                                      },
                                                      "then": {
                                                        "not": {
                                                          "required": [
                                                            "exclude"
                                                          ]
                                                        }
                                                      }
                                                    }
                                                  ]
                                                },
                                                "actions": {
                                                  "description": "Specifies a list of actions.",
                                                  "type": "array",
                                                  "items": {
                                                    "type": "object",
                                                    "additionalProperties": false,
                                                    "properties": {
                                                      "action": {
                                                        "description": "Specifies an action to perform",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ],
                                                        "enum": [
                                                          "ASN1ContentExtractor",
                                                          "Base64Decode",
                                                          "ConditionChecker",
                                                          "CheckDataSize",
                                                          "CheckMimeType",
                                                          "JsonPathExtract",
                                                          "JsonPathExtractToVars",
                                                          "JsonValidation",
                                                          "XsdValidation",
                                                          "PostFormDataToFlateJson",
                                                          "MultipartExtract",
                                                          "SetMessageFromVar",
                                                          "SetVarFromMessage",
                                                          "JwsToJson",
                                                          "XPathExtract",
                                                          "XPathExtractToVars",
                                                          "SharedMapDeleter",
                                                          "SharedMapRemover",
                                                          "SharedMapSetter",
                                                          "SharedMapGetter",
                                                          "RandomNumberToVar",
                                                          "VarsToSharedMap",
                                                          "SharedMapToVars",
                                                          "AntivirusFileChecker",
                                                          "MtomExtractor",
                                                          "JsonTransformer",
                                                          "SetVar",
                                                          "GraphQLRequestValidation",
                                                          "ProtobufValidation",
                                                          "OpenApiValidation",
                                                          "DelimiterSplitter",
                                                          "VarsToFile",
                                                          "FileToVars",
                                                          "WsdlValidation",
                                                          "HttpFilter",
                                                          "ProtobufToJson",
                                                          "FilterMds",
                                                          "OcspSignValidator",
                                                          "OcspToJson",
                                                          "ASN1ToJson",
                                                          "XmlTransformer",
                                                          "UrlEncode",
                                                          "UrlDecodeUni",
                                                          "UrlDecode",
                                                          "HexDecode",
                                                          "HexEncode",
                                                          "ToLowerCase",
                                                          "ToUpperCase",
                                                          "Utf8ToUnicode",
                                                          "Trim",
                                                          "ICAPFileChecker",
                                                          "MessageToFile",
                                                          "MultipartFormGenerateFromVar",
                                                          "HttpSender",
                                                          "MessageAccumulator",
                                                          "MessageFromAccumulator",
                                                          "MessageFromPattern",
                                                          "MultipartFormGenerateFromMessage",
                                                          "JsonPatchMessage",
                                                          "JsonPatchVar",
                                                          "DigestFromMessage",
                                                          "Base64Encode",
                                                          "HMac",
                                                          "FileToMessage",
                                                          "JwtVerifier",
                                                          "CharsetChecker",
                                                          "LdapSearch",
                                                          "UnicodeDecode",
                                                          "MessageMapper",
                                                          "SimpleRateLimiter",
                                                          "EventSourceConverter",
                                                          "LazySessionTimeChecker",
                                                          "CalculateMessageProperties"
                                                        ]
                                                      },
                                                      "id": {
                                                        "description": "An identificator of action",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ]
                                                      },
                                                      "conditions": {
                                                        "description": "Specifies the conditions for performina an action.",
                                                        "type": "array",
                                                        "items": {
                                                          "type": "object",
                                                          "additionalProperties": false,
                                                          "properties": {
                                                            "var": {
                                                              "description": "Specifies a variable to check.",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ]
                                                            },
                                                            "operator": {
                                                              "description": "Specifies an operator.",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ],
                                                              "enum": [
                                                                "=",
                                                                "!=",
                                                                "<=",
                                                                ">=",
                                                                ">",
                                                                "<",
                                                                "in",
                                                                "not_in",
                                                                "~",
                                                                "~*",
                                                                "!~",
                                                                "!~*",
                                                                "ip_range",
                                                                "!ip_range",
                                                                "dn_mask",
                                                                "!dn_mask"
                                                              ]
                                                            },
                                                            "val": {
                                                              "description": "Specifies a value to check.",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ]
                                                            }
                                                          },
                                                          "required": [
                                                            "var",
                                                            "operator",
                                                            "val"
                                                          ]
                                                        }
                                                      },
                                                      "trace_config": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "enableAllActions": {
                                                            "description": "enable tracing of all actions in chains",
                                                            "type": "boolean"
                                                          },
                                                          "enableAllChains": {
                                                            "description": "enable tracing of all actions in child chains",
                                                            "type": "boolean"
                                                          },
                                                          "mode": {
                                                            "description": "Enable or disable tracing at this level.",
                                                            "type": "object",
                                                            "additionalProperties": false,
                                                            "properties": {
                                                              "enabled": {
                                                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                "type": [
                                                                  "number",
                                                                  "string"
                                                                ],
                                                                "enum": [
                                                                  "on",
                                                                  "off",
                                                                  "var_based"
                                                                ]
                                                              },
                                                              "var": {
                                                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                "type": [
                                                                  "number",
                                                                  "string"
                                                                ]
                                                              }
                                                            }
                                                          },
                                                          "spanAttributes": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "name": {
                                                                  "description": "name of attribute",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "value": {
                                                                  "description": "value of attribute, can contain variables",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                }
                                                              }
                                                            }
                                                          },
                                                          "spanName": {
                                                            "description": "Specify name of span",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "enableSocketsTracing": {
                                                            "description": "Enable or disable socket tracing, by default enabled",
                                                            "type": "boolean"
                                                          }
                                                        }
                                                      },
                                                      "params": {
                                                        "description": "Specifies extra parameters for the actions.",
                                                        "type": "object",
                                                        "additionalProperties": true
                                                      },
                                                      "requiredChildOneOf": {
                                                        "description": "Specifies unverifed action check",
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "decision": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ],
                                                            "enum": [
                                                              "BLOCK",
                                                              "WARN"
                                                            ]
                                                          },
                                                          "onlyCheckers": {
                                                            "type": "boolean"
                                                          },
                                                          "include": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ]
                                                            }
                                                          },
                                                          "exclude": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "decision"
                                                        ],
                                                        "allOf": [
                                                          {
                                                            "if": {
                                                              "type": "object",
                                                              "required": [
                                                                "exclude"
                                                              ],
                                                              "properties": {
                                                                "exclude": {}
                                                              }
                                                            },
                                                            "then": {
                                                              "not": {
                                                                "required": [
                                                                  "include"
                                                                ]
                                                              }
                                                            }
                                                          },
                                                          {
                                                            "if": {
                                                              "type": "object",
                                                              "required": [
                                                                "include"
                                                              ],
                                                              "properties": {
                                                                "include": {}
                                                              }
                                                            },
                                                            "then": {
                                                              "not": {
                                                                "required": [
                                                                  "exclude"
                                                                ]
                                                              }
                                                            }
                                                          }
                                                        ]
                                                      },
                                                      "actions": {
                                                        "description": "Specifies a list of actions.",
                                                        "type": "array",
                                                        "items": {
                                                          "type": "object",
                                                          "additionalProperties": false,
                                                          "properties": {
                                                            "action": {
                                                              "description": "Specifies an action to perform",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ],
                                                              "enum": [
                                                                "ASN1ContentExtractor",
                                                                "Base64Decode",
                                                                "ConditionChecker",
                                                                "CheckDataSize",
                                                                "CheckMimeType",
                                                                "JsonPathExtract",
                                                                "JsonPathExtractToVars",
                                                                "JsonValidation",
                                                                "XsdValidation",
                                                                "PostFormDataToFlateJson",
                                                                "MultipartExtract",
                                                                "SetMessageFromVar",
                                                                "SetVarFromMessage",
                                                                "JwsToJson",
                                                                "XPathExtract",
                                                                "XPathExtractToVars",
                                                                "SharedMapDeleter",
                                                                "SharedMapRemover",
                                                                "SharedMapSetter",
                                                                "SharedMapGetter",
                                                                "RandomNumberToVar",
                                                                "VarsToSharedMap",
                                                                "SharedMapToVars",
                                                                "AntivirusFileChecker",
                                                                "MtomExtractor",
                                                                "JsonTransformer",
                                                                "SetVar",
                                                                "GraphQLRequestValidation",
                                                                "ProtobufValidation",
                                                                "OpenApiValidation",
                                                                "DelimiterSplitter",
                                                                "VarsToFile",
                                                                "FileToVars",
                                                                "WsdlValidation",
                                                                "HttpFilter",
                                                                "ProtobufToJson",
                                                                "FilterMds",
                                                                "OcspSignValidator",
                                                                "OcspToJson",
                                                                "ASN1ToJson",
                                                                "XmlTransformer",
                                                                "UrlEncode",
                                                                "UrlDecodeUni",
                                                                "UrlDecode",
                                                                "HexDecode",
                                                                "HexEncode",
                                                                "ToLowerCase",
                                                                "ToUpperCase",
                                                                "Utf8ToUnicode",
                                                                "Trim",
                                                                "ICAPFileChecker",
                                                                "MessageToFile",
                                                                "MultipartFormGenerateFromVar",
                                                                "HttpSender",
                                                                "MessageAccumulator",
                                                                "MessageFromAccumulator",
                                                                "MessageFromPattern",
                                                                "MultipartFormGenerateFromMessage",
                                                                "JsonPatchMessage",
                                                                "JsonPatchVar",
                                                                "DigestFromMessage",
                                                                "Base64Encode",
                                                                "HMac",
                                                                "FileToMessage",
                                                                "JwtVerifier",
                                                                "CharsetChecker",
                                                                "LdapSearch",
                                                                "UnicodeDecode",
                                                                "MessageMapper",
                                                                "SimpleRateLimiter",
                                                                "EventSourceConverter",
                                                                "LazySessionTimeChecker",
                                                                "CalculateMessageProperties"
                                                              ]
                                                            },
                                                            "id": {
                                                              "description": "An identificator of action",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ]
                                                            },
                                                            "conditions": {
                                                              "description": "Specifies the conditions for performina an action.",
                                                              "type": "array",
                                                              "items": {
                                                                "type": "object",
                                                                "additionalProperties": false,
                                                                "properties": {
                                                                  "var": {
                                                                    "description": "Specifies a variable to check.",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ]
                                                                  },
                                                                  "operator": {
                                                                    "description": "Specifies an operator.",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ],
                                                                    "enum": [
                                                                      "=",
                                                                      "!=",
                                                                      "<=",
                                                                      ">=",
                                                                      ">",
                                                                      "<",
                                                                      "in",
                                                                      "not_in",
                                                                      "~",
                                                                      "~*",
                                                                      "!~",
                                                                      "!~*",
                                                                      "ip_range",
                                                                      "!ip_range",
                                                                      "dn_mask",
                                                                      "!dn_mask"
                                                                    ]
                                                                  },
                                                                  "val": {
                                                                    "description": "Specifies a value to check.",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ]
                                                                  }
                                                                },
                                                                "required": [
                                                                  "var",
                                                                  "operator",
                                                                  "val"
                                                                ]
                                                              }
                                                            },
                                                            "trace_config": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "enableAllActions": {
                                                                  "description": "enable tracing of all actions in chains",
                                                                  "type": "boolean"
                                                                },
                                                                "enableAllChains": {
                                                                  "description": "enable tracing of all actions in child chains",
                                                                  "type": "boolean"
                                                                },
                                                                "mode": {
                                                                  "description": "Enable or disable tracing at this level.",
                                                                  "type": "object",
                                                                  "additionalProperties": false,
                                                                  "properties": {
                                                                    "enabled": {
                                                                      "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                      "type": [
                                                                        "number",
                                                                        "string"
                                                                      ],
                                                                      "enum": [
                                                                        "on",
                                                                        "off",
                                                                        "var_based"
                                                                      ]
                                                                    },
                                                                    "var": {
                                                                      "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                      "type": [
                                                                        "number",
                                                                        "string"
                                                                      ]
                                                                    }
                                                                  }
                                                                },
                                                                "spanAttributes": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "name": {
                                                                        "description": "name of attribute",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "value": {
                                                                        "description": "value of attribute, can contain variables",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      }
                                                                    }
                                                                  }
                                                                },
                                                                "spanName": {
                                                                  "description": "Specify name of span",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "enableSocketsTracing": {
                                                                  "description": "Enable or disable socket tracing, by default enabled",
                                                                  "type": "boolean"
                                                                }
                                                              }
                                                            },
                                                            "params": {
                                                              "description": "Specifies extra parameters for the actions.",
                                                              "type": "object",
                                                              "additionalProperties": true
                                                            },
                                                            "requiredChildOneOf": {
                                                              "description": "Specifies unverifed action check",
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "decision": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ],
                                                                  "enum": [
                                                                    "BLOCK",
                                                                    "WARN"
                                                                  ]
                                                                },
                                                                "onlyCheckers": {
                                                                  "type": "boolean"
                                                                },
                                                                "include": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ]
                                                                  }
                                                                },
                                                                "exclude": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "string"
                                                                  }
                                                                }
                                                              },
                                                              "required": [
                                                                "decision"
                                                              ],
                                                              "allOf": [
                                                                {
                                                                  "if": {
                                                                    "type": "object",
                                                                    "required": [
                                                                      "exclude"
                                                                    ],
                                                                    "properties": {
                                                                      "exclude": {}
                                                                    }
                                                                  },
                                                                  "then": {
                                                                    "not": {
                                                                      "required": [
                                                                        "include"
                                                                      ]
                                                                    }
                                                                  }
                                                                },
                                                                {
                                                                  "if": {
                                                                    "type": "object",
                                                                    "required": [
                                                                      "include"
                                                                    ],
                                                                    "properties": {
                                                                      "include": {}
                                                                    }
                                                                  },
                                                                  "then": {
                                                                    "not": {
                                                                      "required": [
                                                                        "exclude"
                                                                      ]
                                                                    }
                                                                  }
                                                                }
                                                              ]
                                                            },
                                                            "actions": {
                                                              "description": "Specifies a list of actions.",
                                                              "type": "array",
                                                              "items": {
                                                                "type": "object",
                                                                "additionalProperties": false,
                                                                "properties": {
                                                                  "action": {
                                                                    "description": "Specifies an action to perform",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ],
                                                                    "enum": [
                                                                      "ASN1ContentExtractor",
                                                                      "Base64Decode",
                                                                      "ConditionChecker",
                                                                      "CheckDataSize",
                                                                      "CheckMimeType",
                                                                      "JsonPathExtract",
                                                                      "JsonPathExtractToVars",
                                                                      "JsonValidation",
                                                                      "XsdValidation",
                                                                      "PostFormDataToFlateJson",
                                                                      "MultipartExtract",
                                                                      "SetMessageFromVar",
                                                                      "SetVarFromMessage",
                                                                      "JwsToJson",
                                                                      "XPathExtract",
                                                                      "XPathExtractToVars",
                                                                      "SharedMapDeleter",
                                                                      "SharedMapRemover",
                                                                      "SharedMapSetter",
                                                                      "SharedMapGetter",
                                                                      "RandomNumberToVar",
                                                                      "VarsToSharedMap",
                                                                      "SharedMapToVars",
                                                                      "AntivirusFileChecker",
                                                                      "MtomExtractor",
                                                                      "JsonTransformer",
                                                                      "SetVar",
                                                                      "GraphQLRequestValidation",
                                                                      "ProtobufValidation",
                                                                      "OpenApiValidation",
                                                                      "DelimiterSplitter",
                                                                      "VarsToFile",
                                                                      "FileToVars",
                                                                      "WsdlValidation",
                                                                      "HttpFilter",
                                                                      "ProtobufToJson",
                                                                      "FilterMds",
                                                                      "OcspSignValidator",
                                                                      "OcspToJson",
                                                                      "ASN1ToJson",
                                                                      "XmlTransformer",
                                                                      "UrlEncode",
                                                                      "UrlDecodeUni",
                                                                      "UrlDecode",
                                                                      "HexDecode",
                                                                      "HexEncode",
                                                                      "ToLowerCase",
                                                                      "ToUpperCase",
                                                                      "Utf8ToUnicode",
                                                                      "Trim",
                                                                      "ICAPFileChecker",
                                                                      "MessageToFile",
                                                                      "MultipartFormGenerateFromVar",
                                                                      "HttpSender",
                                                                      "MessageAccumulator",
                                                                      "MessageFromAccumulator",
                                                                      "MessageFromPattern",
                                                                      "MultipartFormGenerateFromMessage",
                                                                      "JsonPatchMessage",
                                                                      "JsonPatchVar",
                                                                      "DigestFromMessage",
                                                                      "Base64Encode",
                                                                      "HMac",
                                                                      "FileToMessage",
                                                                      "JwtVerifier",
                                                                      "CharsetChecker",
                                                                      "LdapSearch",
                                                                      "UnicodeDecode",
                                                                      "MessageMapper",
                                                                      "SimpleRateLimiter",
                                                                      "EventSourceConverter",
                                                                      "LazySessionTimeChecker",
                                                                      "CalculateMessageProperties"
                                                                    ]
                                                                  },
                                                                  "id": {
                                                                    "description": "An identificator of action",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ]
                                                                  },
                                                                  "conditions": {
                                                                    "description": "Specifies the conditions for performina an action.",
                                                                    "type": "array",
                                                                    "items": {
                                                                      "type": "object",
                                                                      "additionalProperties": false,
                                                                      "properties": {
                                                                        "var": {
                                                                          "description": "Specifies a variable to check.",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ]
                                                                        },
                                                                        "operator": {
                                                                          "description": "Specifies an operator.",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ],
                                                                          "enum": [
                                                                            "=",
                                                                            "!=",
                                                                            "<=",
                                                                            ">=",
                                                                            ">",
                                                                            "<",
                                                                            "in",
                                                                            "not_in",
                                                                            "~",
                                                                            "~*",
                                                                            "!~",
                                                                            "!~*",
                                                                            "ip_range",
                                                                            "!ip_range",
                                                                            "dn_mask",
                                                                            "!dn_mask"
                                                                          ]
                                                                        },
                                                                        "val": {
                                                                          "description": "Specifies a value to check.",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "required": [
                                                                        "var",
                                                                        "operator",
                                                                        "val"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "trace_config": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "enableAllActions": {
                                                                        "description": "enable tracing of all actions in chains",
                                                                        "type": "boolean"
                                                                      },
                                                                      "enableAllChains": {
                                                                        "description": "enable tracing of all actions in child chains",
                                                                        "type": "boolean"
                                                                      },
                                                                      "mode": {
                                                                        "description": "Enable or disable tracing at this level.",
                                                                        "type": "object",
                                                                        "additionalProperties": false,
                                                                        "properties": {
                                                                          "enabled": {
                                                                            "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                            "type": [
                                                                              "number",
                                                                              "string"
                                                                            ],
                                                                            "enum": [
                                                                              "on",
                                                                              "off",
                                                                              "var_based"
                                                                            ]
                                                                          },
                                                                          "var": {
                                                                            "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                            "type": [
                                                                              "number",
                                                                              "string"
                                                                            ]
                                                                          }
                                                                        }
                                                                      },
                                                                      "spanAttributes": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "name": {
                                                                              "description": "name of attribute",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "value": {
                                                                              "description": "value of attribute, can contain variables",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            }
                                                                          }
                                                                        }
                                                                      },
                                                                      "spanName": {
                                                                        "description": "Specify name of span",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "enableSocketsTracing": {
                                                                        "description": "Enable or disable socket tracing, by default enabled",
                                                                        "type": "boolean"
                                                                      }
                                                                    }
                                                                  },
                                                                  "params": {
                                                                    "description": "Specifies extra parameters for the actions.",
                                                                    "type": "object",
                                                                    "additionalProperties": true
                                                                  },
                                                                  "requiredChildOneOf": {
                                                                    "description": "Specifies unverifed action check",
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "decision": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ],
                                                                        "enum": [
                                                                          "BLOCK",
                                                                          "WARN"
                                                                        ]
                                                                      },
                                                                      "onlyCheckers": {
                                                                        "type": "boolean"
                                                                      },
                                                                      "include": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "exclude": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "string"
                                                                        }
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "decision"
                                                                    ],
                                                                    "allOf": [
                                                                      {
                                                                        "if": {
                                                                          "type": "object",
                                                                          "required": [
                                                                            "exclude"
                                                                          ],
                                                                          "properties": {
                                                                            "exclude": {}
                                                                          }
                                                                        },
                                                                        "then": {
                                                                          "not": {
                                                                            "required": [
                                                                              "include"
                                                                            ]
                                                                          }
                                                                        }
                                                                      },
                                                                      {
                                                                        "if": {
                                                                          "type": "object",
                                                                          "required": [
                                                                            "include"
                                                                          ],
                                                                          "properties": {
                                                                            "include": {}
                                                                          }
                                                                        },
                                                                        "then": {
                                                                          "not": {
                                                                            "required": [
                                                                              "exclude"
                                                                            ]
                                                                          }
                                                                        }
                                                                      }
                                                                    ]
                                                                  },
                                                                  "actions": {
                                                                    "description": "Specifies a list of actions.",
                                                                    "type": "array",
                                                                    "items": {
                                                                      "type": "object",
                                                                      "additionalProperties": false,
                                                                      "properties": {
                                                                        "action": {
                                                                          "description": "Specifies an action to perform",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ],
                                                                          "enum": [
                                                                            "ASN1ContentExtractor",
                                                                            "Base64Decode",
                                                                            "ConditionChecker",
                                                                            "CheckDataSize",
                                                                            "CheckMimeType",
                                                                            "JsonPathExtract",
                                                                            "JsonPathExtractToVars",
                                                                            "JsonValidation",
                                                                            "XsdValidation",
                                                                            "PostFormDataToFlateJson",
                                                                            "MultipartExtract",
                                                                            "SetMessageFromVar",
                                                                            "SetVarFromMessage",
                                                                            "JwsToJson",
                                                                            "XPathExtract",
                                                                            "XPathExtractToVars",
                                                                            "SharedMapDeleter",
                                                                            "SharedMapRemover",
                                                                            "SharedMapSetter",
                                                                            "SharedMapGetter",
                                                                            "RandomNumberToVar",
                                                                            "VarsToSharedMap",
                                                                            "SharedMapToVars",
                                                                            "AntivirusFileChecker",
                                                                            "MtomExtractor",
                                                                            "JsonTransformer",
                                                                            "SetVar",
                                                                            "GraphQLRequestValidation",
                                                                            "ProtobufValidation",
                                                                            "OpenApiValidation",
                                                                            "DelimiterSplitter",
                                                                            "VarsToFile",
                                                                            "FileToVars",
                                                                            "WsdlValidation",
                                                                            "HttpFilter",
                                                                            "ProtobufToJson",
                                                                            "FilterMds",
                                                                            "OcspSignValidator",
                                                                            "OcspToJson",
                                                                            "ASN1ToJson",
                                                                            "XmlTransformer",
                                                                            "UrlEncode",
                                                                            "UrlDecodeUni",
                                                                            "UrlDecode",
                                                                            "HexDecode",
                                                                            "HexEncode",
                                                                            "ToLowerCase",
                                                                            "ToUpperCase",
                                                                            "Utf8ToUnicode",
                                                                            "Trim",
                                                                            "ICAPFileChecker",
                                                                            "MessageToFile",
                                                                            "MultipartFormGenerateFromVar",
                                                                            "HttpSender",
                                                                            "MessageAccumulator",
                                                                            "MessageFromAccumulator",
                                                                            "MessageFromPattern",
                                                                            "MultipartFormGenerateFromMessage",
                                                                            "JsonPatchMessage",
                                                                            "JsonPatchVar",
                                                                            "DigestFromMessage",
                                                                            "Base64Encode",
                                                                            "HMac",
                                                                            "FileToMessage",
                                                                            "JwtVerifier",
                                                                            "CharsetChecker",
                                                                            "LdapSearch",
                                                                            "UnicodeDecode",
                                                                            "MessageMapper",
                                                                            "SimpleRateLimiter",
                                                                            "EventSourceConverter",
                                                                            "LazySessionTimeChecker",
                                                                            "CalculateMessageProperties"
                                                                          ]
                                                                        },
                                                                        "id": {
                                                                          "description": "An identificator of action",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ]
                                                                        },
                                                                        "conditions": {
                                                                          "description": "Specifies the conditions for performina an action.",
                                                                          "type": "array",
                                                                          "items": {
                                                                            "type": "object",
                                                                            "additionalProperties": false,
                                                                            "properties": {
                                                                              "var": {
                                                                                "description": "Specifies a variable to check.",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ]
                                                                              },
                                                                              "operator": {
                                                                                "description": "Specifies an operator.",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ],
                                                                                "enum": [
                                                                                  "=",
                                                                                  "!=",
                                                                                  "<=",
                                                                                  ">=",
                                                                                  ">",
                                                                                  "<",
                                                                                  "in",
                                                                                  "not_in",
                                                                                  "~",
                                                                                  "~*",
                                                                                  "!~",
                                                                                  "!~*",
                                                                                  "ip_range",
                                                                                  "!ip_range",
                                                                                  "dn_mask",
                                                                                  "!dn_mask"
                                                                                ]
                                                                              },
                                                                              "val": {
                                                                                "description": "Specifies a value to check.",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ]
                                                                              }
                                                                            },
                                                                            "required": [
                                                                              "var",
                                                                              "operator",
                                                                              "val"
                                                                            ]
                                                                          }
                                                                        },
                                                                        "trace_config": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "enableAllActions": {
                                                                              "description": "enable tracing of all actions in chains",
                                                                              "type": "boolean"
                                                                            },
                                                                            "enableAllChains": {
                                                                              "description": "enable tracing of all actions in child chains",
                                                                              "type": "boolean"
                                                                            },
                                                                            "mode": {
                                                                              "description": "Enable or disable tracing at this level.",
                                                                              "type": "object",
                                                                              "additionalProperties": false,
                                                                              "properties": {
                                                                                "enabled": {
                                                                                  "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                  "type": [
                                                                                    "number",
                                                                                    "string"
                                                                                  ],
                                                                                  "enum": [
                                                                                    "on",
                                                                                    "off",
                                                                                    "var_based"
                                                                                  ]
                                                                                },
                                                                                "var": {
                                                                                  "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                  "type": [
                                                                                    "number",
                                                                                    "string"
                                                                                  ]
                                                                                }
                                                                              }
                                                                            },
                                                                            "spanAttributes": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "name": {
                                                                                    "description": "name of attribute",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "value": {
                                                                                    "description": "value of attribute, can contain variables",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  }
                                                                                }
                                                                              }
                                                                            },
                                                                            "spanName": {
                                                                              "description": "Specify name of span",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "enableSocketsTracing": {
                                                                              "description": "Enable or disable socket tracing, by default enabled",
                                                                              "type": "boolean"
                                                                            }
                                                                          }
                                                                        },
                                                                        "params": {
                                                                          "description": "Specifies extra parameters for the actions.",
                                                                          "type": "object",
                                                                          "additionalProperties": true
                                                                        },
                                                                        "requiredChildOneOf": {
                                                                          "description": "Specifies unverifed action check",
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "decision": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ],
                                                                              "enum": [
                                                                                "BLOCK",
                                                                                "WARN"
                                                                              ]
                                                                            },
                                                                            "onlyCheckers": {
                                                                              "type": "boolean"
                                                                            },
                                                                            "include": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ]
                                                                              }
                                                                            },
                                                                            "exclude": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "string"
                                                                              }
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "decision"
                                                                          ],
                                                                          "allOf": [
                                                                            {
                                                                              "if": {
                                                                                "type": "object",
                                                                                "required": [
                                                                                  "exclude"
                                                                                ],
                                                                                "properties": {
                                                                                  "exclude": {}
                                                                                }
                                                                              },
                                                                              "then": {
                                                                                "not": {
                                                                                  "required": [
                                                                                    "include"
                                                                                  ]
                                                                                }
                                                                              }
                                                                            },
                                                                            {
                                                                              "if": {
                                                                                "type": "object",
                                                                                "required": [
                                                                                  "include"
                                                                                ],
                                                                                "properties": {
                                                                                  "include": {}
                                                                                }
                                                                              },
                                                                              "then": {
                                                                                "not": {
                                                                                  "required": [
                                                                                    "exclude"
                                                                                  ]
                                                                                }
                                                                              }
                                                                            }
                                                                          ]
                                                                        },
                                                                        "actions": {
                                                                          "description": "Specifies a list of actions.",
                                                                          "type": "array",
                                                                          "items": {
                                                                            "type": "object",
                                                                            "additionalProperties": false,
                                                                            "properties": {
                                                                              "action": {
                                                                                "description": "Specifies an action to perform",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ],
                                                                                "enum": [
                                                                                  "ASN1ContentExtractor",
                                                                                  "Base64Decode",
                                                                                  "ConditionChecker",
                                                                                  "CheckDataSize",
                                                                                  "CheckMimeType",
                                                                                  "JsonPathExtract",
                                                                                  "JsonPathExtractToVars",
                                                                                  "JsonValidation",
                                                                                  "XsdValidation",
                                                                                  "PostFormDataToFlateJson",
                                                                                  "MultipartExtract",
                                                                                  "SetMessageFromVar",
                                                                                  "SetVarFromMessage",
                                                                                  "JwsToJson",
                                                                                  "XPathExtract",
                                                                                  "XPathExtractToVars",
                                                                                  "SharedMapDeleter",
                                                                                  "SharedMapRemover",
                                                                                  "SharedMapSetter",
                                                                                  "SharedMapGetter",
                                                                                  "RandomNumberToVar",
                                                                                  "VarsToSharedMap",
                                                                                  "SharedMapToVars",
                                                                                  "AntivirusFileChecker",
                                                                                  "MtomExtractor",
                                                                                  "JsonTransformer",
                                                                                  "SetVar",
                                                                                  "GraphQLRequestValidation",
                                                                                  "ProtobufValidation",
                                                                                  "OpenApiValidation",
                                                                                  "DelimiterSplitter",
                                                                                  "VarsToFile",
                                                                                  "FileToVars",
                                                                                  "WsdlValidation",
                                                                                  "HttpFilter",
                                                                                  "ProtobufToJson",
                                                                                  "FilterMds",
                                                                                  "OcspSignValidator",
                                                                                  "OcspToJson",
                                                                                  "ASN1ToJson",
                                                                                  "XmlTransformer",
                                                                                  "UrlEncode",
                                                                                  "UrlDecodeUni",
                                                                                  "UrlDecode",
                                                                                  "HexDecode",
                                                                                  "HexEncode",
                                                                                  "ToLowerCase",
                                                                                  "ToUpperCase",
                                                                                  "Utf8ToUnicode",
                                                                                  "Trim",
                                                                                  "ICAPFileChecker",
                                                                                  "MessageToFile",
                                                                                  "MultipartFormGenerateFromVar",
                                                                                  "HttpSender",
                                                                                  "MessageAccumulator",
                                                                                  "MessageFromAccumulator",
                                                                                  "MessageFromPattern",
                                                                                  "MultipartFormGenerateFromMessage",
                                                                                  "JsonPatchMessage",
                                                                                  "JsonPatchVar",
                                                                                  "DigestFromMessage",
                                                                                  "Base64Encode",
                                                                                  "HMac",
                                                                                  "FileToMessage",
                                                                                  "JwtVerifier",
                                                                                  "CharsetChecker",
                                                                                  "LdapSearch",
                                                                                  "UnicodeDecode",
                                                                                  "MessageMapper",
                                                                                  "SimpleRateLimiter",
                                                                                  "EventSourceConverter",
                                                                                  "LazySessionTimeChecker",
                                                                                  "CalculateMessageProperties"
                                                                                ]
                                                                              },
                                                                              "id": {
                                                                                "description": "An identificator of action",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ]
                                                                              },
                                                                              "conditions": {
                                                                                "description": "Specifies the conditions for performina an action.",
                                                                                "type": "array",
                                                                                "items": {
                                                                                  "type": "object",
                                                                                  "additionalProperties": false,
                                                                                  "properties": {
                                                                                    "var": {
                                                                                      "description": "Specifies a variable to check.",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ]
                                                                                    },
                                                                                    "operator": {
                                                                                      "description": "Specifies an operator.",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ],
                                                                                      "enum": [
                                                                                        "=",
                                                                                        "!=",
                                                                                        "<=",
                                                                                        ">=",
                                                                                        ">",
                                                                                        "<",
                                                                                        "in",
                                                                                        "not_in",
                                                                                        "~",
                                                                                        "~*",
                                                                                        "!~",
                                                                                        "!~*",
                                                                                        "ip_range",
                                                                                        "!ip_range",
                                                                                        "dn_mask",
                                                                                        "!dn_mask"
                                                                                      ]
                                                                                    },
                                                                                    "val": {
                                                                                      "description": "Specifies a value to check.",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ]
                                                                                    }
                                                                                  },
                                                                                  "required": [
                                                                                    "var",
                                                                                    "operator",
                                                                                    "val"
                                                                                  ]
                                                                                }
                                                                              },
                                                                              "trace_config": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "enableAllActions": {
                                                                                    "description": "enable tracing of all actions in chains",
                                                                                    "type": "boolean"
                                                                                  },
                                                                                  "enableAllChains": {
                                                                                    "description": "enable tracing of all actions in child chains",
                                                                                    "type": "boolean"
                                                                                  },
                                                                                  "mode": {
                                                                                    "description": "Enable or disable tracing at this level.",
                                                                                    "type": "object",
                                                                                    "additionalProperties": false,
                                                                                    "properties": {
                                                                                      "enabled": {
                                                                                        "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                        "type": [
                                                                                          "number",
                                                                                          "string"
                                                                                        ],
                                                                                        "enum": [
                                                                                          "on",
                                                                                          "off",
                                                                                          "var_based"
                                                                                        ]
                                                                                      },
                                                                                      "var": {
                                                                                        "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                        "type": [
                                                                                          "number",
                                                                                          "string"
                                                                                        ]
                                                                                      }
                                                                                    }
                                                                                  },
                                                                                  "spanAttributes": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "name": {
                                                                                          "description": "name of attribute",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "value": {
                                                                                          "description": "value of attribute, can contain variables",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        }
                                                                                      }
                                                                                    }
                                                                                  },
                                                                                  "spanName": {
                                                                                    "description": "Specify name of span",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "enableSocketsTracing": {
                                                                                    "description": "Enable or disable socket tracing, by default enabled",
                                                                                    "type": "boolean"
                                                                                  }
                                                                                }
                                                                              },
                                                                              "params": {
                                                                                "description": "Specifies extra parameters for the actions.",
                                                                                "type": "object",
                                                                                "additionalProperties": true
                                                                              },
                                                                              "requiredChildOneOf": {
                                                                                "description": "Specifies unverifed action check",
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "decision": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ],
                                                                                    "enum": [
                                                                                      "BLOCK",
                                                                                      "WARN"
                                                                                    ]
                                                                                  },
                                                                                  "onlyCheckers": {
                                                                                    "type": "boolean"
                                                                                  },
                                                                                  "include": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ]
                                                                                    }
                                                                                  },
                                                                                  "exclude": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "string"
                                                                                    }
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "decision"
                                                                                ],
                                                                                "allOf": [
                                                                                  {
                                                                                    "if": {
                                                                                      "type": "object",
                                                                                      "required": [
                                                                                        "exclude"
                                                                                      ],
                                                                                      "properties": {
                                                                                        "exclude": {}
                                                                                      }
                                                                                    },
                                                                                    "then": {
                                                                                      "not": {
                                                                                        "required": [
                                                                                          "include"
                                                                                        ]
                                                                                      }
                                                                                    }
                                                                                  },
                                                                                  {
                                                                                    "if": {
                                                                                      "type": "object",
                                                                                      "required": [
                                                                                        "include"
                                                                                      ],
                                                                                      "properties": {
                                                                                        "include": {}
                                                                                      }
                                                                                    },
                                                                                    "then": {
                                                                                      "not": {
                                                                                        "required": [
                                                                                          "exclude"
                                                                                        ]
                                                                                      }
                                                                                    }
                                                                                  }
                                                                                ]
                                                                              },
                                                                              "actions": {
                                                                                "description": "Specifies a list of actions.",
                                                                                "type": "array",
                                                                                "items": {
                                                                                  "type": "object",
                                                                                  "additionalProperties": false,
                                                                                  "properties": {
                                                                                    "action": {
                                                                                      "description": "Specifies an action to perform",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ],
                                                                                      "enum": [
                                                                                        "ASN1ContentExtractor",
                                                                                        "Base64Decode",
                                                                                        "ConditionChecker",
                                                                                        "CheckDataSize",
                                                                                        "CheckMimeType",
                                                                                        "JsonPathExtract",
                                                                                        "JsonPathExtractToVars",
                                                                                        "JsonValidation",
                                                                                        "XsdValidation",
                                                                                        "PostFormDataToFlateJson",
                                                                                        "MultipartExtract",
                                                                                        "SetMessageFromVar",
                                                                                        "SetVarFromMessage",
                                                                                        "JwsToJson",
                                                                                        "XPathExtract",
                                                                                        "XPathExtractToVars",
                                                                                        "SharedMapDeleter",
                                                                                        "SharedMapRemover",
                                                                                        "SharedMapSetter",
                                                                                        "SharedMapGetter",
                                                                                        "RandomNumberToVar",
                                                                                        "VarsToSharedMap",
                                                                                        "SharedMapToVars",
                                                                                        "AntivirusFileChecker",
                                                                                        "MtomExtractor",
                                                                                        "JsonTransformer",
                                                                                        "SetVar",
                                                                                        "GraphQLRequestValidation",
                                                                                        "ProtobufValidation",
                                                                                        "OpenApiValidation",
                                                                                        "DelimiterSplitter",
                                                                                        "VarsToFile",
                                                                                        "FileToVars",
                                                                                        "WsdlValidation",
                                                                                        "HttpFilter",
                                                                                        "ProtobufToJson",
                                                                                        "FilterMds",
                                                                                        "OcspSignValidator",
                                                                                        "OcspToJson",
                                                                                        "ASN1ToJson",
                                                                                        "XmlTransformer",
                                                                                        "UrlEncode",
                                                                                        "UrlDecodeUni",
                                                                                        "UrlDecode",
                                                                                        "HexDecode",
                                                                                        "HexEncode",
                                                                                        "ToLowerCase",
                                                                                        "ToUpperCase",
                                                                                        "Utf8ToUnicode",
                                                                                        "Trim",
                                                                                        "ICAPFileChecker",
                                                                                        "MessageToFile",
                                                                                        "MultipartFormGenerateFromVar",
                                                                                        "HttpSender",
                                                                                        "MessageAccumulator",
                                                                                        "MessageFromAccumulator",
                                                                                        "MessageFromPattern",
                                                                                        "MultipartFormGenerateFromMessage",
                                                                                        "JsonPatchMessage",
                                                                                        "JsonPatchVar",
                                                                                        "DigestFromMessage",
                                                                                        "Base64Encode",
                                                                                        "HMac",
                                                                                        "FileToMessage",
                                                                                        "JwtVerifier",
                                                                                        "CharsetChecker",
                                                                                        "LdapSearch",
                                                                                        "UnicodeDecode",
                                                                                        "MessageMapper",
                                                                                        "SimpleRateLimiter",
                                                                                        "EventSourceConverter",
                                                                                        "LazySessionTimeChecker",
                                                                                        "CalculateMessageProperties"
                                                                                      ]
                                                                                    },
                                                                                    "id": {
                                                                                      "description": "An identificator of action",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ]
                                                                                    },
                                                                                    "conditions": {
                                                                                      "description": "Specifies the conditions for performina an action.",
                                                                                      "type": "array",
                                                                                      "items": {
                                                                                        "type": "object",
                                                                                        "additionalProperties": false,
                                                                                        "properties": {
                                                                                          "var": {
                                                                                            "description": "Specifies a variable to check.",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ]
                                                                                          },
                                                                                          "operator": {
                                                                                            "description": "Specifies an operator.",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ],
                                                                                            "enum": [
                                                                                              "=",
                                                                                              "!=",
                                                                                              "<=",
                                                                                              ">=",
                                                                                              ">",
                                                                                              "<",
                                                                                              "in",
                                                                                              "not_in",
                                                                                              "~",
                                                                                              "~*",
                                                                                              "!~",
                                                                                              "!~*",
                                                                                              "ip_range",
                                                                                              "!ip_range",
                                                                                              "dn_mask",
                                                                                              "!dn_mask"
                                                                                            ]
                                                                                          },
                                                                                          "val": {
                                                                                            "description": "Specifies a value to check.",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ]
                                                                                          }
                                                                                        },
                                                                                        "required": [
                                                                                          "var",
                                                                                          "operator",
                                                                                          "val"
                                                                                        ]
                                                                                      }
                                                                                    },
                                                                                    "trace_config": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "enableAllActions": {
                                                                                          "description": "enable tracing of all actions in chains",
                                                                                          "type": "boolean"
                                                                                        },
                                                                                        "enableAllChains": {
                                                                                          "description": "enable tracing of all actions in child chains",
                                                                                          "type": "boolean"
                                                                                        },
                                                                                        "mode": {
                                                                                          "description": "Enable or disable tracing at this level.",
                                                                                          "type": "object",
                                                                                          "additionalProperties": false,
                                                                                          "properties": {
                                                                                            "enabled": {
                                                                                              "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                              "type": [
                                                                                                "number",
                                                                                                "string"
                                                                                              ],
                                                                                              "enum": [
                                                                                                "on",
                                                                                                "off",
                                                                                                "var_based"
                                                                                              ]
                                                                                            },
                                                                                            "var": {
                                                                                              "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                              "type": [
                                                                                                "number",
                                                                                                "string"
                                                                                              ]
                                                                                            }
                                                                                          }
                                                                                        },
                                                                                        "spanAttributes": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "name": {
                                                                                                "description": "name of attribute",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "value": {
                                                                                                "description": "value of attribute, can contain variables",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              }
                                                                                            }
                                                                                          }
                                                                                        },
                                                                                        "spanName": {
                                                                                          "description": "Specify name of span",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "enableSocketsTracing": {
                                                                                          "description": "Enable or disable socket tracing, by default enabled",
                                                                                          "type": "boolean"
                                                                                        }
                                                                                      }
                                                                                    },
                                                                                    "params": {
                                                                                      "description": "Specifies extra parameters for the actions.",
                                                                                      "type": "object",
                                                                                      "additionalProperties": true
                                                                                    },
                                                                                    "requiredChildOneOf": {
                                                                                      "description": "Specifies unverifed action check",
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "decision": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ],
                                                                                          "enum": [
                                                                                            "BLOCK",
                                                                                            "WARN"
                                                                                          ]
                                                                                        },
                                                                                        "onlyCheckers": {
                                                                                          "type": "boolean"
                                                                                        },
                                                                                        "include": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ]
                                                                                          }
                                                                                        },
                                                                                        "exclude": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "string"
                                                                                          }
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "decision"
                                                                                      ],
                                                                                      "allOf": [
                                                                                        {
                                                                                          "if": {
                                                                                            "type": "object",
                                                                                            "required": [
                                                                                              "exclude"
                                                                                            ],
                                                                                            "properties": {
                                                                                              "exclude": {}
                                                                                            }
                                                                                          },
                                                                                          "then": {
                                                                                            "not": {
                                                                                              "required": [
                                                                                                "include"
                                                                                              ]
                                                                                            }
                                                                                          }
                                                                                        },
                                                                                        {
                                                                                          "if": {
                                                                                            "type": "object",
                                                                                            "required": [
                                                                                              "include"
                                                                                            ],
                                                                                            "properties": {
                                                                                              "include": {}
                                                                                            }
                                                                                          },
                                                                                          "then": {
                                                                                            "not": {
                                                                                              "required": [
                                                                                                "exclude"
                                                                                              ]
                                                                                            }
                                                                                          }
                                                                                        }
                                                                                      ]
                                                                                    },
                                                                                    "actions": {
                                                                                      "description": "Specifies a list of actions.",
                                                                                      "type": "array",
                                                                                      "items": {
                                                                                        "type": "object",
                                                                                        "additionalProperties": false,
                                                                                        "properties": {
                                                                                          "action": {
                                                                                            "description": "Specifies an action to perform",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ],
                                                                                            "enum": [
                                                                                              "ASN1ContentExtractor",
                                                                                              "Base64Decode",
                                                                                              "ConditionChecker",
                                                                                              "CheckDataSize",
                                                                                              "CheckMimeType",
                                                                                              "JsonPathExtract",
                                                                                              "JsonPathExtractToVars",
                                                                                              "JsonValidation",
                                                                                              "XsdValidation",
                                                                                              "PostFormDataToFlateJson",
                                                                                              "MultipartExtract",
                                                                                              "SetMessageFromVar",
                                                                                              "SetVarFromMessage",
                                                                                              "JwsToJson",
                                                                                              "XPathExtract",
                                                                                              "XPathExtractToVars",
                                                                                              "SharedMapDeleter",
                                                                                              "SharedMapRemover",
                                                                                              "SharedMapSetter",
                                                                                              "SharedMapGetter",
                                                                                              "RandomNumberToVar",
                                                                                              "VarsToSharedMap",
                                                                                              "SharedMapToVars",
                                                                                              "AntivirusFileChecker",
                                                                                              "MtomExtractor",
                                                                                              "JsonTransformer",
                                                                                              "SetVar",
                                                                                              "GraphQLRequestValidation",
                                                                                              "ProtobufValidation",
                                                                                              "OpenApiValidation",
                                                                                              "DelimiterSplitter",
                                                                                              "VarsToFile",
                                                                                              "FileToVars",
                                                                                              "WsdlValidation",
                                                                                              "HttpFilter",
                                                                                              "ProtobufToJson",
                                                                                              "FilterMds",
                                                                                              "OcspSignValidator",
                                                                                              "OcspToJson",
                                                                                              "ASN1ToJson",
                                                                                              "XmlTransformer",
                                                                                              "UrlEncode",
                                                                                              "UrlDecodeUni",
                                                                                              "UrlDecode",
                                                                                              "HexDecode",
                                                                                              "HexEncode",
                                                                                              "ToLowerCase",
                                                                                              "ToUpperCase",
                                                                                              "Utf8ToUnicode",
                                                                                              "Trim",
                                                                                              "ICAPFileChecker",
                                                                                              "MessageToFile",
                                                                                              "MultipartFormGenerateFromVar",
                                                                                              "HttpSender",
                                                                                              "MessageAccumulator",
                                                                                              "MessageFromAccumulator",
                                                                                              "MessageFromPattern",
                                                                                              "MultipartFormGenerateFromMessage",
                                                                                              "JsonPatchMessage",
                                                                                              "JsonPatchVar",
                                                                                              "DigestFromMessage",
                                                                                              "Base64Encode",
                                                                                              "HMac",
                                                                                              "FileToMessage",
                                                                                              "JwtVerifier",
                                                                                              "CharsetChecker",
                                                                                              "LdapSearch",
                                                                                              "UnicodeDecode",
                                                                                              "MessageMapper",
                                                                                              "SimpleRateLimiter",
                                                                                              "EventSourceConverter",
                                                                                              "LazySessionTimeChecker",
                                                                                              "CalculateMessageProperties"
                                                                                            ]
                                                                                          },
                                                                                          "id": {
                                                                                            "description": "An identificator of action",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ]
                                                                                          },
                                                                                          "conditions": {
                                                                                            "description": "Specifies the conditions for performina an action.",
                                                                                            "type": "array",
                                                                                            "items": {
                                                                                              "type": "object",
                                                                                              "additionalProperties": false,
                                                                                              "properties": {
                                                                                                "var": {
                                                                                                  "description": "Specifies a variable to check.",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ]
                                                                                                },
                                                                                                "operator": {
                                                                                                  "description": "Specifies an operator.",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ],
                                                                                                  "enum": [
                                                                                                    "=",
                                                                                                    "!=",
                                                                                                    "<=",
                                                                                                    ">=",
                                                                                                    ">",
                                                                                                    "<",
                                                                                                    "in",
                                                                                                    "not_in",
                                                                                                    "~",
                                                                                                    "~*",
                                                                                                    "!~",
                                                                                                    "!~*",
                                                                                                    "ip_range",
                                                                                                    "!ip_range",
                                                                                                    "dn_mask",
                                                                                                    "!dn_mask"
                                                                                                  ]
                                                                                                },
                                                                                                "val": {
                                                                                                  "description": "Specifies a value to check.",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ]
                                                                                                }
                                                                                              },
                                                                                              "required": [
                                                                                                "var",
                                                                                                "operator",
                                                                                                "val"
                                                                                              ]
                                                                                            }
                                                                                          },
                                                                                          "trace_config": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "enableAllActions": {
                                                                                                "description": "enable tracing of all actions in chains",
                                                                                                "type": "boolean"
                                                                                              },
                                                                                              "enableAllChains": {
                                                                                                "description": "enable tracing of all actions in child chains",
                                                                                                "type": "boolean"
                                                                                              },
                                                                                              "mode": {
                                                                                                "description": "Enable or disable tracing at this level.",
                                                                                                "type": "object",
                                                                                                "additionalProperties": false,
                                                                                                "properties": {
                                                                                                  "enabled": {
                                                                                                    "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                    "type": [
                                                                                                      "number",
                                                                                                      "string"
                                                                                                    ],
                                                                                                    "enum": [
                                                                                                      "on",
                                                                                                      "off",
                                                                                                      "var_based"
                                                                                                    ]
                                                                                                  },
                                                                                                  "var": {
                                                                                                    "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                    "type": [
                                                                                                      "number",
                                                                                                      "string"
                                                                                                    ]
                                                                                                  }
                                                                                                }
                                                                                              },
                                                                                              "spanAttributes": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "name": {
                                                                                                      "description": "name of attribute",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "value": {
                                                                                                      "description": "value of attribute, can contain variables",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    }
                                                                                                  }
                                                                                                }
                                                                                              },
                                                                                              "spanName": {
                                                                                                "description": "Specify name of span",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "enableSocketsTracing": {
                                                                                                "description": "Enable or disable socket tracing, by default enabled",
                                                                                                "type": "boolean"
                                                                                              }
                                                                                            }
                                                                                          },
                                                                                          "params": {
                                                                                            "description": "Specifies extra parameters for the actions.",
                                                                                            "type": "object",
                                                                                            "additionalProperties": true
                                                                                          },
                                                                                          "requiredChildOneOf": {
                                                                                            "description": "Specifies unverifed action check",
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "decision": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ],
                                                                                                "enum": [
                                                                                                  "BLOCK",
                                                                                                  "WARN"
                                                                                                ]
                                                                                              },
                                                                                              "onlyCheckers": {
                                                                                                "type": "boolean"
                                                                                              },
                                                                                              "include": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ]
                                                                                                }
                                                                                              },
                                                                                              "exclude": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "string"
                                                                                                }
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "decision"
                                                                                            ],
                                                                                            "allOf": [
                                                                                              {
                                                                                                "if": {
                                                                                                  "type": "object",
                                                                                                  "required": [
                                                                                                    "exclude"
                                                                                                  ],
                                                                                                  "properties": {
                                                                                                    "exclude": {}
                                                                                                  }
                                                                                                },
                                                                                                "then": {
                                                                                                  "not": {
                                                                                                    "required": [
                                                                                                      "include"
                                                                                                    ]
                                                                                                  }
                                                                                                }
                                                                                              },
                                                                                              {
                                                                                                "if": {
                                                                                                  "type": "object",
                                                                                                  "required": [
                                                                                                    "include"
                                                                                                  ],
                                                                                                  "properties": {
                                                                                                    "include": {}
                                                                                                  }
                                                                                                },
                                                                                                "then": {
                                                                                                  "not": {
                                                                                                    "required": [
                                                                                                      "exclude"
                                                                                                    ]
                                                                                                  }
                                                                                                }
                                                                                              }
                                                                                            ]
                                                                                          },
                                                                                          "actions": {
                                                                                            "description": "Specifies a list of actions.",
                                                                                            "type": "array",
                                                                                            "items": {
                                                                                              "type": "object",
                                                                                              "additionalProperties": false,
                                                                                              "properties": {
                                                                                                "action": {
                                                                                                  "description": "Specifies an action to perform",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ],
                                                                                                  "enum": [
                                                                                                    "ASN1ContentExtractor",
                                                                                                    "Base64Decode",
                                                                                                    "ConditionChecker",
                                                                                                    "CheckDataSize",
                                                                                                    "CheckMimeType",
                                                                                                    "JsonPathExtract",
                                                                                                    "JsonPathExtractToVars",
                                                                                                    "JsonValidation",
                                                                                                    "XsdValidation",
                                                                                                    "PostFormDataToFlateJson",
                                                                                                    "MultipartExtract",
                                                                                                    "SetMessageFromVar",
                                                                                                    "SetVarFromMessage",
                                                                                                    "JwsToJson",
                                                                                                    "XPathExtract",
                                                                                                    "XPathExtractToVars",
                                                                                                    "SharedMapDeleter",
                                                                                                    "SharedMapRemover",
                                                                                                    "SharedMapSetter",
                                                                                                    "SharedMapGetter",
                                                                                                    "RandomNumberToVar",
                                                                                                    "VarsToSharedMap",
                                                                                                    "SharedMapToVars",
                                                                                                    "AntivirusFileChecker",
                                                                                                    "MtomExtractor",
                                                                                                    "JsonTransformer",
                                                                                                    "SetVar",
                                                                                                    "GraphQLRequestValidation",
                                                                                                    "ProtobufValidation",
                                                                                                    "OpenApiValidation",
                                                                                                    "DelimiterSplitter",
                                                                                                    "VarsToFile",
                                                                                                    "FileToVars",
                                                                                                    "WsdlValidation",
                                                                                                    "HttpFilter",
                                                                                                    "ProtobufToJson",
                                                                                                    "FilterMds",
                                                                                                    "OcspSignValidator",
                                                                                                    "OcspToJson",
                                                                                                    "ASN1ToJson",
                                                                                                    "XmlTransformer",
                                                                                                    "UrlEncode",
                                                                                                    "UrlDecodeUni",
                                                                                                    "UrlDecode",
                                                                                                    "HexDecode",
                                                                                                    "HexEncode",
                                                                                                    "ToLowerCase",
                                                                                                    "ToUpperCase",
                                                                                                    "Utf8ToUnicode",
                                                                                                    "Trim",
                                                                                                    "ICAPFileChecker",
                                                                                                    "MessageToFile",
                                                                                                    "MultipartFormGenerateFromVar",
                                                                                                    "HttpSender",
                                                                                                    "MessageAccumulator",
                                                                                                    "MessageFromAccumulator",
                                                                                                    "MessageFromPattern",
                                                                                                    "MultipartFormGenerateFromMessage",
                                                                                                    "JsonPatchMessage",
                                                                                                    "JsonPatchVar",
                                                                                                    "DigestFromMessage",
                                                                                                    "Base64Encode",
                                                                                                    "HMac",
                                                                                                    "FileToMessage",
                                                                                                    "JwtVerifier",
                                                                                                    "CharsetChecker",
                                                                                                    "LdapSearch",
                                                                                                    "UnicodeDecode",
                                                                                                    "MessageMapper",
                                                                                                    "SimpleRateLimiter",
                                                                                                    "EventSourceConverter",
                                                                                                    "LazySessionTimeChecker",
                                                                                                    "CalculateMessageProperties"
                                                                                                  ]
                                                                                                },
                                                                                                "id": {
                                                                                                  "description": "An identificator of action",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ]
                                                                                                },
                                                                                                "conditions": {
                                                                                                  "description": "Specifies the conditions for performina an action.",
                                                                                                  "type": "array",
                                                                                                  "items": {
                                                                                                    "type": "object",
                                                                                                    "additionalProperties": false,
                                                                                                    "properties": {
                                                                                                      "var": {
                                                                                                        "description": "Specifies a variable to check.",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ]
                                                                                                      },
                                                                                                      "operator": {
                                                                                                        "description": "Specifies an operator.",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ],
                                                                                                        "enum": [
                                                                                                          "=",
                                                                                                          "!=",
                                                                                                          "<=",
                                                                                                          ">=",
                                                                                                          ">",
                                                                                                          "<",
                                                                                                          "in",
                                                                                                          "not_in",
                                                                                                          "~",
                                                                                                          "~*",
                                                                                                          "!~",
                                                                                                          "!~*",
                                                                                                          "ip_range",
                                                                                                          "!ip_range",
                                                                                                          "dn_mask",
                                                                                                          "!dn_mask"
                                                                                                        ]
                                                                                                      },
                                                                                                      "val": {
                                                                                                        "description": "Specifies a value to check.",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ]
                                                                                                      }
                                                                                                    },
                                                                                                    "required": [
                                                                                                      "var",
                                                                                                      "operator",
                                                                                                      "val"
                                                                                                    ]
                                                                                                  }
                                                                                                },
                                                                                                "trace_config": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "enableAllActions": {
                                                                                                      "description": "enable tracing of all actions in chains",
                                                                                                      "type": "boolean"
                                                                                                    },
                                                                                                    "enableAllChains": {
                                                                                                      "description": "enable tracing of all actions in child chains",
                                                                                                      "type": "boolean"
                                                                                                    },
                                                                                                    "mode": {
                                                                                                      "description": "Enable or disable tracing at this level.",
                                                                                                      "type": "object",
                                                                                                      "additionalProperties": false,
                                                                                                      "properties": {
                                                                                                        "enabled": {
                                                                                                          "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                          "type": [
                                                                                                            "number",
                                                                                                            "string"
                                                                                                          ],
                                                                                                          "enum": [
                                                                                                            "on",
                                                                                                            "off",
                                                                                                            "var_based"
                                                                                                          ]
                                                                                                        },
                                                                                                        "var": {
                                                                                                          "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                          "type": [
                                                                                                            "number",
                                                                                                            "string"
                                                                                                          ]
                                                                                                        }
                                                                                                      }
                                                                                                    },
                                                                                                    "spanAttributes": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "name": {
                                                                                                            "description": "name of attribute",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "value": {
                                                                                                            "description": "value of attribute, can contain variables",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          }
                                                                                                        }
                                                                                                      }
                                                                                                    },
                                                                                                    "spanName": {
                                                                                                      "description": "Specify name of span",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "enableSocketsTracing": {
                                                                                                      "description": "Enable or disable socket tracing, by default enabled",
                                                                                                      "type": "boolean"
                                                                                                    }
                                                                                                  }
                                                                                                },
                                                                                                "params": {
                                                                                                  "description": "Specifies extra parameters for the actions.",
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": true
                                                                                                },
                                                                                                "requiredChildOneOf": {
                                                                                                  "description": "Specifies unverifed action check",
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "decision": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ],
                                                                                                      "enum": [
                                                                                                        "BLOCK",
                                                                                                        "WARN"
                                                                                                      ]
                                                                                                    },
                                                                                                    "onlyCheckers": {
                                                                                                      "type": "boolean"
                                                                                                    },
                                                                                                    "include": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ]
                                                                                                      }
                                                                                                    },
                                                                                                    "exclude": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "string"
                                                                                                      }
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "decision"
                                                                                                  ],
                                                                                                  "allOf": [
                                                                                                    {
                                                                                                      "if": {
                                                                                                        "type": "object",
                                                                                                        "required": [
                                                                                                          "exclude"
                                                                                                        ],
                                                                                                        "properties": {
                                                                                                          "exclude": {}
                                                                                                        }
                                                                                                      },
                                                                                                      "then": {
                                                                                                        "not": {
                                                                                                          "required": [
                                                                                                            "include"
                                                                                                          ]
                                                                                                        }
                                                                                                      }
                                                                                                    },
                                                                                                    {
                                                                                                      "if": {
                                                                                                        "type": "object",
                                                                                                        "required": [
                                                                                                          "include"
                                                                                                        ],
                                                                                                        "properties": {
                                                                                                          "include": {}
                                                                                                        }
                                                                                                      },
                                                                                                      "then": {
                                                                                                        "not": {
                                                                                                          "required": [
                                                                                                            "exclude"
                                                                                                          ]
                                                                                                        }
                                                                                                      }
                                                                                                    }
                                                                                                  ]
                                                                                                },
                                                                                                "actions": {
                                                                                                  "description": "Specifies a list of actions.",
                                                                                                  "type": "array",
                                                                                                  "items": {
                                                                                                    "type": "object",
                                                                                                    "additionalProperties": false,
                                                                                                    "properties": {
                                                                                                      "action": {
                                                                                                        "description": "Specifies an action to perform",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ],
                                                                                                        "enum": [
                                                                                                          "ASN1ContentExtractor",
                                                                                                          "Base64Decode",
                                                                                                          "ConditionChecker",
                                                                                                          "CheckDataSize",
                                                                                                          "CheckMimeType",
                                                                                                          "JsonPathExtract",
                                                                                                          "JsonPathExtractToVars",
                                                                                                          "JsonValidation",
                                                                                                          "XsdValidation",
                                                                                                          "PostFormDataToFlateJson",
                                                                                                          "MultipartExtract",
                                                                                                          "SetMessageFromVar",
                                                                                                          "SetVarFromMessage",
                                                                                                          "JwsToJson",
                                                                                                          "XPathExtract",
                                                                                                          "XPathExtractToVars",
                                                                                                          "SharedMapDeleter",
                                                                                                          "SharedMapRemover",
                                                                                                          "SharedMapSetter",
                                                                                                          "SharedMapGetter",
                                                                                                          "RandomNumberToVar",
                                                                                                          "VarsToSharedMap",
                                                                                                          "SharedMapToVars",
                                                                                                          "AntivirusFileChecker",
                                                                                                          "MtomExtractor",
                                                                                                          "JsonTransformer",
                                                                                                          "SetVar",
                                                                                                          "GraphQLRequestValidation",
                                                                                                          "ProtobufValidation",
                                                                                                          "OpenApiValidation",
                                                                                                          "DelimiterSplitter",
                                                                                                          "VarsToFile",
                                                                                                          "FileToVars",
                                                                                                          "WsdlValidation",
                                                                                                          "HttpFilter",
                                                                                                          "ProtobufToJson",
                                                                                                          "FilterMds",
                                                                                                          "OcspSignValidator",
                                                                                                          "OcspToJson",
                                                                                                          "ASN1ToJson",
                                                                                                          "XmlTransformer",
                                                                                                          "UrlEncode",
                                                                                                          "UrlDecodeUni",
                                                                                                          "UrlDecode",
                                                                                                          "HexDecode",
                                                                                                          "HexEncode",
                                                                                                          "ToLowerCase",
                                                                                                          "ToUpperCase",
                                                                                                          "Utf8ToUnicode",
                                                                                                          "Trim",
                                                                                                          "ICAPFileChecker",
                                                                                                          "MessageToFile",
                                                                                                          "MultipartFormGenerateFromVar",
                                                                                                          "HttpSender",
                                                                                                          "MessageAccumulator",
                                                                                                          "MessageFromAccumulator",
                                                                                                          "MessageFromPattern",
                                                                                                          "MultipartFormGenerateFromMessage",
                                                                                                          "JsonPatchMessage",
                                                                                                          "JsonPatchVar",
                                                                                                          "DigestFromMessage",
                                                                                                          "Base64Encode",
                                                                                                          "HMac",
                                                                                                          "FileToMessage",
                                                                                                          "JwtVerifier",
                                                                                                          "CharsetChecker",
                                                                                                          "LdapSearch",
                                                                                                          "UnicodeDecode",
                                                                                                          "MessageMapper",
                                                                                                          "SimpleRateLimiter",
                                                                                                          "EventSourceConverter",
                                                                                                          "LazySessionTimeChecker",
                                                                                                          "CalculateMessageProperties"
                                                                                                        ]
                                                                                                      },
                                                                                                      "id": {
                                                                                                        "description": "An identificator of action",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ]
                                                                                                      },
                                                                                                      "conditions": {
                                                                                                        "description": "Specifies the conditions for performina an action.",
                                                                                                        "type": "array",
                                                                                                        "items": {
                                                                                                          "type": "object",
                                                                                                          "additionalProperties": false,
                                                                                                          "properties": {
                                                                                                            "var": {
                                                                                                              "description": "Specifies a variable to check.",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ]
                                                                                                            },
                                                                                                            "operator": {
                                                                                                              "description": "Specifies an operator.",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ],
                                                                                                              "enum": [
                                                                                                                "=",
                                                                                                                "!=",
                                                                                                                "<=",
                                                                                                                ">=",
                                                                                                                ">",
                                                                                                                "<",
                                                                                                                "in",
                                                                                                                "not_in",
                                                                                                                "~",
                                                                                                                "~*",
                                                                                                                "!~",
                                                                                                                "!~*",
                                                                                                                "ip_range",
                                                                                                                "!ip_range",
                                                                                                                "dn_mask",
                                                                                                                "!dn_mask"
                                                                                                              ]
                                                                                                            },
                                                                                                            "val": {
                                                                                                              "description": "Specifies a value to check.",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ]
                                                                                                            }
                                                                                                          },
                                                                                                          "required": [
                                                                                                            "var",
                                                                                                            "operator",
                                                                                                            "val"
                                                                                                          ]
                                                                                                        }
                                                                                                      },
                                                                                                      "trace_config": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "enableAllActions": {
                                                                                                            "description": "enable tracing of all actions in chains",
                                                                                                            "type": "boolean"
                                                                                                          },
                                                                                                          "enableAllChains": {
                                                                                                            "description": "enable tracing of all actions in child chains",
                                                                                                            "type": "boolean"
                                                                                                          },
                                                                                                          "mode": {
                                                                                                            "description": "Enable or disable tracing at this level.",
                                                                                                            "type": "object",
                                                                                                            "additionalProperties": false,
                                                                                                            "properties": {
                                                                                                              "enabled": {
                                                                                                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                "type": [
                                                                                                                  "number",
                                                                                                                  "string"
                                                                                                                ],
                                                                                                                "enum": [
                                                                                                                  "on",
                                                                                                                  "off",
                                                                                                                  "var_based"
                                                                                                                ]
                                                                                                              },
                                                                                                              "var": {
                                                                                                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                "type": [
                                                                                                                  "number",
                                                                                                                  "string"
                                                                                                                ]
                                                                                                              }
                                                                                                            }
                                                                                                          },
                                                                                                          "spanAttributes": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "name": {
                                                                                                                  "description": "name of attribute",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "value": {
                                                                                                                  "description": "value of attribute, can contain variables",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                }
                                                                                                              }
                                                                                                            }
                                                                                                          },
                                                                                                          "spanName": {
                                                                                                            "description": "Specify name of span",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "enableSocketsTracing": {
                                                                                                            "description": "Enable or disable socket tracing, by default enabled",
                                                                                                            "type": "boolean"
                                                                                                          }
                                                                                                        }
                                                                                                      },
                                                                                                      "params": {
                                                                                                        "description": "Specifies extra parameters for the actions.",
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": true
                                                                                                      },
                                                                                                      "requiredChildOneOf": {
                                                                                                        "description": "Specifies unverifed action check",
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "decision": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ],
                                                                                                            "enum": [
                                                                                                              "BLOCK",
                                                                                                              "WARN"
                                                                                                            ]
                                                                                                          },
                                                                                                          "onlyCheckers": {
                                                                                                            "type": "boolean"
                                                                                                          },
                                                                                                          "include": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ]
                                                                                                            }
                                                                                                          },
                                                                                                          "exclude": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "string"
                                                                                                            }
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "decision"
                                                                                                        ],
                                                                                                        "allOf": [
                                                                                                          {
                                                                                                            "if": {
                                                                                                              "type": "object",
                                                                                                              "required": [
                                                                                                                "exclude"
                                                                                                              ],
                                                                                                              "properties": {
                                                                                                                "exclude": {}
                                                                                                              }
                                                                                                            },
                                                                                                            "then": {
                                                                                                              "not": {
                                                                                                                "required": [
                                                                                                                  "include"
                                                                                                                ]
                                                                                                              }
                                                                                                            }
                                                                                                          },
                                                                                                          {
                                                                                                            "if": {
                                                                                                              "type": "object",
                                                                                                              "required": [
                                                                                                                "include"
                                                                                                              ],
                                                                                                              "properties": {
                                                                                                                "include": {}
                                                                                                              }
                                                                                                            },
                                                                                                            "then": {
                                                                                                              "not": {
                                                                                                                "required": [
                                                                                                                  "exclude"
                                                                                                                ]
                                                                                                              }
                                                                                                            }
                                                                                                          }
                                                                                                        ]
                                                                                                      },
                                                                                                      "actions": {
                                                                                                        "description": "Specifies a list of actions.",
                                                                                                        "type": "array",
                                                                                                        "items": {
                                                                                                          "type": "object",
                                                                                                          "additionalProperties": false,
                                                                                                          "properties": {
                                                                                                            "action": {
                                                                                                              "description": "Specifies an action to perform",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ],
                                                                                                              "enum": [
                                                                                                                "ASN1ContentExtractor",
                                                                                                                "Base64Decode",
                                                                                                                "ConditionChecker",
                                                                                                                "CheckDataSize",
                                                                                                                "CheckMimeType",
                                                                                                                "JsonPathExtract",
                                                                                                                "JsonPathExtractToVars",
                                                                                                                "JsonValidation",
                                                                                                                "XsdValidation",
                                                                                                                "PostFormDataToFlateJson",
                                                                                                                "MultipartExtract",
                                                                                                                "SetMessageFromVar",
                                                                                                                "SetVarFromMessage",
                                                                                                                "JwsToJson",
                                                                                                                "XPathExtract",
                                                                                                                "XPathExtractToVars",
                                                                                                                "SharedMapDeleter",
                                                                                                                "SharedMapRemover",
                                                                                                                "SharedMapSetter",
                                                                                                                "SharedMapGetter",
                                                                                                                "RandomNumberToVar",
                                                                                                                "VarsToSharedMap",
                                                                                                                "SharedMapToVars",
                                                                                                                "AntivirusFileChecker",
                                                                                                                "MtomExtractor",
                                                                                                                "JsonTransformer",
                                                                                                                "SetVar",
                                                                                                                "GraphQLRequestValidation",
                                                                                                                "ProtobufValidation",
                                                                                                                "OpenApiValidation",
                                                                                                                "DelimiterSplitter",
                                                                                                                "VarsToFile",
                                                                                                                "FileToVars",
                                                                                                                "WsdlValidation",
                                                                                                                "HttpFilter",
                                                                                                                "ProtobufToJson",
                                                                                                                "FilterMds",
                                                                                                                "OcspSignValidator",
                                                                                                                "OcspToJson",
                                                                                                                "ASN1ToJson",
                                                                                                                "XmlTransformer",
                                                                                                                "UrlEncode",
                                                                                                                "UrlDecodeUni",
                                                                                                                "UrlDecode",
                                                                                                                "HexDecode",
                                                                                                                "HexEncode",
                                                                                                                "ToLowerCase",
                                                                                                                "ToUpperCase",
                                                                                                                "Utf8ToUnicode",
                                                                                                                "Trim",
                                                                                                                "ICAPFileChecker",
                                                                                                                "MessageToFile",
                                                                                                                "MultipartFormGenerateFromVar",
                                                                                                                "HttpSender",
                                                                                                                "MessageAccumulator",
                                                                                                                "MessageFromAccumulator",
                                                                                                                "MessageFromPattern",
                                                                                                                "MultipartFormGenerateFromMessage",
                                                                                                                "JsonPatchMessage",
                                                                                                                "JsonPatchVar",
                                                                                                                "DigestFromMessage",
                                                                                                                "Base64Encode",
                                                                                                                "HMac",
                                                                                                                "FileToMessage",
                                                                                                                "JwtVerifier",
                                                                                                                "CharsetChecker",
                                                                                                                "LdapSearch",
                                                                                                                "UnicodeDecode",
                                                                                                                "MessageMapper",
                                                                                                                "SimpleRateLimiter",
                                                                                                                "EventSourceConverter",
                                                                                                                "LazySessionTimeChecker",
                                                                                                                "CalculateMessageProperties"
                                                                                                              ]
                                                                                                            },
                                                                                                            "id": {
                                                                                                              "description": "An identificator of action",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ]
                                                                                                            },
                                                                                                            "conditions": {
                                                                                                              "description": "Specifies the conditions for performina an action.",
                                                                                                              "type": "array",
                                                                                                              "items": {
                                                                                                                "type": "object",
                                                                                                                "additionalProperties": false,
                                                                                                                "properties": {
                                                                                                                  "var": {
                                                                                                                    "description": "Specifies a variable to check.",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "operator": {
                                                                                                                    "description": "Specifies an operator.",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ],
                                                                                                                    "enum": [
                                                                                                                      "=",
                                                                                                                      "!=",
                                                                                                                      "<=",
                                                                                                                      ">=",
                                                                                                                      ">",
                                                                                                                      "<",
                                                                                                                      "in",
                                                                                                                      "not_in",
                                                                                                                      "~",
                                                                                                                      "~*",
                                                                                                                      "!~",
                                                                                                                      "!~*",
                                                                                                                      "ip_range",
                                                                                                                      "!ip_range",
                                                                                                                      "dn_mask",
                                                                                                                      "!dn_mask"
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "val": {
                                                                                                                    "description": "Specifies a value to check.",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                },
                                                                                                                "required": [
                                                                                                                  "var",
                                                                                                                  "operator",
                                                                                                                  "val"
                                                                                                                ]
                                                                                                              }
                                                                                                            },
                                                                                                            "trace_config": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "enableAllActions": {
                                                                                                                  "description": "enable tracing of all actions in chains",
                                                                                                                  "type": "boolean"
                                                                                                                },
                                                                                                                "enableAllChains": {
                                                                                                                  "description": "enable tracing of all actions in child chains",
                                                                                                                  "type": "boolean"
                                                                                                                },
                                                                                                                "mode": {
                                                                                                                  "description": "Enable or disable tracing at this level.",
                                                                                                                  "type": "object",
                                                                                                                  "additionalProperties": false,
                                                                                                                  "properties": {
                                                                                                                    "enabled": {
                                                                                                                      "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                      "type": [
                                                                                                                        "number",
                                                                                                                        "string"
                                                                                                                      ],
                                                                                                                      "enum": [
                                                                                                                        "on",
                                                                                                                        "off",
                                                                                                                        "var_based"
                                                                                                                      ]
                                                                                                                    },
                                                                                                                    "var": {
                                                                                                                      "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                      "type": [
                                                                                                                        "number",
                                                                                                                        "string"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  }
                                                                                                                },
                                                                                                                "spanAttributes": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "name": {
                                                                                                                        "description": "name of attribute",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "value": {
                                                                                                                        "description": "value of attribute, can contain variables",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      }
                                                                                                                    }
                                                                                                                  }
                                                                                                                },
                                                                                                                "spanName": {
                                                                                                                  "description": "Specify name of span",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "enableSocketsTracing": {
                                                                                                                  "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                  "type": "boolean"
                                                                                                                }
                                                                                                              }
                                                                                                            },
                                                                                                            "params": {
                                                                                                              "description": "Specifies extra parameters for the actions.",
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": true
                                                                                                            },
                                                                                                            "requiredChildOneOf": {
                                                                                                              "description": "Specifies unverifed action check",
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "decision": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ],
                                                                                                                  "enum": [
                                                                                                                    "BLOCK",
                                                                                                                    "WARN"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "onlyCheckers": {
                                                                                                                  "type": "boolean"
                                                                                                                },
                                                                                                                "include": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                },
                                                                                                                "exclude": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "string"
                                                                                                                  }
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "decision"
                                                                                                              ],
                                                                                                              "allOf": [
                                                                                                                {
                                                                                                                  "if": {
                                                                                                                    "type": "object",
                                                                                                                    "required": [
                                                                                                                      "exclude"
                                                                                                                    ],
                                                                                                                    "properties": {
                                                                                                                      "exclude": {}
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "then": {
                                                                                                                    "not": {
                                                                                                                      "required": [
                                                                                                                        "include"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  }
                                                                                                                },
                                                                                                                {
                                                                                                                  "if": {
                                                                                                                    "type": "object",
                                                                                                                    "required": [
                                                                                                                      "include"
                                                                                                                    ],
                                                                                                                    "properties": {
                                                                                                                      "include": {}
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "then": {
                                                                                                                    "not": {
                                                                                                                      "required": [
                                                                                                                        "exclude"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  }
                                                                                                                }
                                                                                                              ]
                                                                                                            },
                                                                                                            "actions": {
                                                                                                              "description": "Specifies a list of actions.",
                                                                                                              "type": "array",
                                                                                                              "items": {
                                                                                                                "type": "object",
                                                                                                                "additionalProperties": false,
                                                                                                                "properties": {
                                                                                                                  "action": {
                                                                                                                    "description": "Specifies an action to perform",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ],
                                                                                                                    "enum": [
                                                                                                                      "ASN1ContentExtractor",
                                                                                                                      "Base64Decode",
                                                                                                                      "ConditionChecker",
                                                                                                                      "CheckDataSize",
                                                                                                                      "CheckMimeType",
                                                                                                                      "JsonPathExtract",
                                                                                                                      "JsonPathExtractToVars",
                                                                                                                      "JsonValidation",
                                                                                                                      "XsdValidation",
                                                                                                                      "PostFormDataToFlateJson",
                                                                                                                      "MultipartExtract",
                                                                                                                      "SetMessageFromVar",
                                                                                                                      "SetVarFromMessage",
                                                                                                                      "JwsToJson",
                                                                                                                      "XPathExtract",
                                                                                                                      "XPathExtractToVars",
                                                                                                                      "SharedMapDeleter",
                                                                                                                      "SharedMapRemover",
                                                                                                                      "SharedMapSetter",
                                                                                                                      "SharedMapGetter",
                                                                                                                      "RandomNumberToVar",
                                                                                                                      "VarsToSharedMap",
                                                                                                                      "SharedMapToVars",
                                                                                                                      "AntivirusFileChecker",
                                                                                                                      "MtomExtractor",
                                                                                                                      "JsonTransformer",
                                                                                                                      "SetVar",
                                                                                                                      "GraphQLRequestValidation",
                                                                                                                      "ProtobufValidation",
                                                                                                                      "OpenApiValidation",
                                                                                                                      "DelimiterSplitter",
                                                                                                                      "VarsToFile",
                                                                                                                      "FileToVars",
                                                                                                                      "WsdlValidation",
                                                                                                                      "HttpFilter",
                                                                                                                      "ProtobufToJson",
                                                                                                                      "FilterMds",
                                                                                                                      "OcspSignValidator",
                                                                                                                      "OcspToJson",
                                                                                                                      "ASN1ToJson",
                                                                                                                      "XmlTransformer",
                                                                                                                      "UrlEncode",
                                                                                                                      "UrlDecodeUni",
                                                                                                                      "UrlDecode",
                                                                                                                      "HexDecode",
                                                                                                                      "HexEncode",
                                                                                                                      "ToLowerCase",
                                                                                                                      "ToUpperCase",
                                                                                                                      "Utf8ToUnicode",
                                                                                                                      "Trim",
                                                                                                                      "ICAPFileChecker",
                                                                                                                      "MessageToFile",
                                                                                                                      "MultipartFormGenerateFromVar",
                                                                                                                      "HttpSender",
                                                                                                                      "MessageAccumulator",
                                                                                                                      "MessageFromAccumulator",
                                                                                                                      "MessageFromPattern",
                                                                                                                      "MultipartFormGenerateFromMessage",
                                                                                                                      "JsonPatchMessage",
                                                                                                                      "JsonPatchVar",
                                                                                                                      "DigestFromMessage",
                                                                                                                      "Base64Encode",
                                                                                                                      "HMac",
                                                                                                                      "FileToMessage",
                                                                                                                      "JwtVerifier",
                                                                                                                      "CharsetChecker",
                                                                                                                      "LdapSearch",
                                                                                                                      "UnicodeDecode",
                                                                                                                      "MessageMapper",
                                                                                                                      "SimpleRateLimiter",
                                                                                                                      "EventSourceConverter",
                                                                                                                      "LazySessionTimeChecker",
                                                                                                                      "CalculateMessageProperties"
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "id": {
                                                                                                                    "description": "An identificator of action",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "conditions": {
                                                                                                                    "description": "Specifies the conditions for performina an action.",
                                                                                                                    "type": "array",
                                                                                                                    "items": {
                                                                                                                      "type": "object",
                                                                                                                      "additionalProperties": false,
                                                                                                                      "properties": {
                                                                                                                        "var": {
                                                                                                                          "description": "Specifies a variable to check.",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "operator": {
                                                                                                                          "description": "Specifies an operator.",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ],
                                                                                                                          "enum": [
                                                                                                                            "=",
                                                                                                                            "!=",
                                                                                                                            "<=",
                                                                                                                            ">=",
                                                                                                                            ">",
                                                                                                                            "<",
                                                                                                                            "in",
                                                                                                                            "not_in",
                                                                                                                            "~",
                                                                                                                            "~*",
                                                                                                                            "!~",
                                                                                                                            "!~*",
                                                                                                                            "ip_range",
                                                                                                                            "!ip_range",
                                                                                                                            "dn_mask",
                                                                                                                            "!dn_mask"
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "val": {
                                                                                                                          "description": "Specifies a value to check.",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "required": [
                                                                                                                        "var",
                                                                                                                        "operator",
                                                                                                                        "val"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "trace_config": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "enableAllActions": {
                                                                                                                        "description": "enable tracing of all actions in chains",
                                                                                                                        "type": "boolean"
                                                                                                                      },
                                                                                                                      "enableAllChains": {
                                                                                                                        "description": "enable tracing of all actions in child chains",
                                                                                                                        "type": "boolean"
                                                                                                                      },
                                                                                                                      "mode": {
                                                                                                                        "description": "Enable or disable tracing at this level.",
                                                                                                                        "type": "object",
                                                                                                                        "additionalProperties": false,
                                                                                                                        "properties": {
                                                                                                                          "enabled": {
                                                                                                                            "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                            "type": [
                                                                                                                              "number",
                                                                                                                              "string"
                                                                                                                            ],
                                                                                                                            "enum": [
                                                                                                                              "on",
                                                                                                                              "off",
                                                                                                                              "var_based"
                                                                                                                            ]
                                                                                                                          },
                                                                                                                          "var": {
                                                                                                                            "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                            "type": [
                                                                                                                              "number",
                                                                                                                              "string"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "spanAttributes": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "name": {
                                                                                                                              "description": "name of attribute",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "value": {
                                                                                                                              "description": "value of attribute, can contain variables",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            }
                                                                                                                          }
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "spanName": {
                                                                                                                        "description": "Specify name of span",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "enableSocketsTracing": {
                                                                                                                        "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                        "type": "boolean"
                                                                                                                      }
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "params": {
                                                                                                                    "description": "Specifies extra parameters for the actions.",
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": true
                                                                                                                  },
                                                                                                                  "requiredChildOneOf": {
                                                                                                                    "description": "Specifies unverifed action check",
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "decision": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ],
                                                                                                                        "enum": [
                                                                                                                          "BLOCK",
                                                                                                                          "WARN"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "onlyCheckers": {
                                                                                                                        "type": "boolean"
                                                                                                                      },
                                                                                                                      "include": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "exclude": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "string"
                                                                                                                        }
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "decision"
                                                                                                                    ],
                                                                                                                    "allOf": [
                                                                                                                      {
                                                                                                                        "if": {
                                                                                                                          "type": "object",
                                                                                                                          "required": [
                                                                                                                            "exclude"
                                                                                                                          ],
                                                                                                                          "properties": {
                                                                                                                            "exclude": {}
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "then": {
                                                                                                                          "not": {
                                                                                                                            "required": [
                                                                                                                              "include"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        }
                                                                                                                      },
                                                                                                                      {
                                                                                                                        "if": {
                                                                                                                          "type": "object",
                                                                                                                          "required": [
                                                                                                                            "include"
                                                                                                                          ],
                                                                                                                          "properties": {
                                                                                                                            "include": {}
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "then": {
                                                                                                                          "not": {
                                                                                                                            "required": [
                                                                                                                              "exclude"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        }
                                                                                                                      }
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "actions": {
                                                                                                                    "description": "Specifies a list of actions.",
                                                                                                                    "type": "array",
                                                                                                                    "items": {
                                                                                                                      "type": "object",
                                                                                                                      "additionalProperties": false,
                                                                                                                      "properties": {
                                                                                                                        "action": {
                                                                                                                          "description": "Specifies an action to perform",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ],
                                                                                                                          "enum": [
                                                                                                                            "ASN1ContentExtractor",
                                                                                                                            "Base64Decode",
                                                                                                                            "ConditionChecker",
                                                                                                                            "CheckDataSize",
                                                                                                                            "CheckMimeType",
                                                                                                                            "JsonPathExtract",
                                                                                                                            "JsonPathExtractToVars",
                                                                                                                            "JsonValidation",
                                                                                                                            "XsdValidation",
                                                                                                                            "PostFormDataToFlateJson",
                                                                                                                            "MultipartExtract",
                                                                                                                            "SetMessageFromVar",
                                                                                                                            "SetVarFromMessage",
                                                                                                                            "JwsToJson",
                                                                                                                            "XPathExtract",
                                                                                                                            "XPathExtractToVars",
                                                                                                                            "SharedMapDeleter",
                                                                                                                            "SharedMapRemover",
                                                                                                                            "SharedMapSetter",
                                                                                                                            "SharedMapGetter",
                                                                                                                            "RandomNumberToVar",
                                                                                                                            "VarsToSharedMap",
                                                                                                                            "SharedMapToVars",
                                                                                                                            "AntivirusFileChecker",
                                                                                                                            "MtomExtractor",
                                                                                                                            "JsonTransformer",
                                                                                                                            "SetVar",
                                                                                                                            "GraphQLRequestValidation",
                                                                                                                            "ProtobufValidation",
                                                                                                                            "OpenApiValidation",
                                                                                                                            "DelimiterSplitter",
                                                                                                                            "VarsToFile",
                                                                                                                            "FileToVars",
                                                                                                                            "WsdlValidation",
                                                                                                                            "HttpFilter",
                                                                                                                            "ProtobufToJson",
                                                                                                                            "FilterMds",
                                                                                                                            "OcspSignValidator",
                                                                                                                            "OcspToJson",
                                                                                                                            "ASN1ToJson",
                                                                                                                            "XmlTransformer",
                                                                                                                            "UrlEncode",
                                                                                                                            "UrlDecodeUni",
                                                                                                                            "UrlDecode",
                                                                                                                            "HexDecode",
                                                                                                                            "HexEncode",
                                                                                                                            "ToLowerCase",
                                                                                                                            "ToUpperCase",
                                                                                                                            "Utf8ToUnicode",
                                                                                                                            "Trim",
                                                                                                                            "ICAPFileChecker",
                                                                                                                            "MessageToFile",
                                                                                                                            "MultipartFormGenerateFromVar",
                                                                                                                            "HttpSender",
                                                                                                                            "MessageAccumulator",
                                                                                                                            "MessageFromAccumulator",
                                                                                                                            "MessageFromPattern",
                                                                                                                            "MultipartFormGenerateFromMessage",
                                                                                                                            "JsonPatchMessage",
                                                                                                                            "JsonPatchVar",
                                                                                                                            "DigestFromMessage",
                                                                                                                            "Base64Encode",
                                                                                                                            "HMac",
                                                                                                                            "FileToMessage",
                                                                                                                            "JwtVerifier",
                                                                                                                            "CharsetChecker",
                                                                                                                            "LdapSearch",
                                                                                                                            "UnicodeDecode",
                                                                                                                            "MessageMapper",
                                                                                                                            "SimpleRateLimiter",
                                                                                                                            "EventSourceConverter",
                                                                                                                            "LazySessionTimeChecker",
                                                                                                                            "CalculateMessageProperties"
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "id": {
                                                                                                                          "description": "An identificator of action",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "conditions": {
                                                                                                                          "description": "Specifies the conditions for performina an action.",
                                                                                                                          "type": "array",
                                                                                                                          "items": {
                                                                                                                            "type": "object",
                                                                                                                            "additionalProperties": false,
                                                                                                                            "properties": {
                                                                                                                              "var": {
                                                                                                                                "description": "Specifies a variable to check.",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "operator": {
                                                                                                                                "description": "Specifies an operator.",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ],
                                                                                                                                "enum": [
                                                                                                                                  "=",
                                                                                                                                  "!=",
                                                                                                                                  "<=",
                                                                                                                                  ">=",
                                                                                                                                  ">",
                                                                                                                                  "<",
                                                                                                                                  "in",
                                                                                                                                  "not_in",
                                                                                                                                  "~",
                                                                                                                                  "~*",
                                                                                                                                  "!~",
                                                                                                                                  "!~*",
                                                                                                                                  "ip_range",
                                                                                                                                  "!ip_range",
                                                                                                                                  "dn_mask",
                                                                                                                                  "!dn_mask"
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "val": {
                                                                                                                                "description": "Specifies a value to check.",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "required": [
                                                                                                                              "var",
                                                                                                                              "operator",
                                                                                                                              "val"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "trace_config": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "enableAllActions": {
                                                                                                                              "description": "enable tracing of all actions in chains",
                                                                                                                              "type": "boolean"
                                                                                                                            },
                                                                                                                            "enableAllChains": {
                                                                                                                              "description": "enable tracing of all actions in child chains",
                                                                                                                              "type": "boolean"
                                                                                                                            },
                                                                                                                            "mode": {
                                                                                                                              "description": "Enable or disable tracing at this level.",
                                                                                                                              "type": "object",
                                                                                                                              "additionalProperties": false,
                                                                                                                              "properties": {
                                                                                                                                "enabled": {
                                                                                                                                  "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                  "type": [
                                                                                                                                    "number",
                                                                                                                                    "string"
                                                                                                                                  ],
                                                                                                                                  "enum": [
                                                                                                                                    "on",
                                                                                                                                    "off",
                                                                                                                                    "var_based"
                                                                                                                                  ]
                                                                                                                                },
                                                                                                                                "var": {
                                                                                                                                  "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                  "type": [
                                                                                                                                    "number",
                                                                                                                                    "string"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "spanAttributes": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "name": {
                                                                                                                                    "description": "name of attribute",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "value": {
                                                                                                                                    "description": "value of attribute, can contain variables",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  }
                                                                                                                                }
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "spanName": {
                                                                                                                              "description": "Specify name of span",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "enableSocketsTracing": {
                                                                                                                              "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                              "type": "boolean"
                                                                                                                            }
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "params": {
                                                                                                                          "description": "Specifies extra parameters for the actions.",
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": true
                                                                                                                        },
                                                                                                                        "requiredChildOneOf": {
                                                                                                                          "description": "Specifies unverifed action check",
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "decision": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ],
                                                                                                                              "enum": [
                                                                                                                                "BLOCK",
                                                                                                                                "WARN"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "onlyCheckers": {
                                                                                                                              "type": "boolean"
                                                                                                                            },
                                                                                                                            "include": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "exclude": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "string"
                                                                                                                              }
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "decision"
                                                                                                                          ],
                                                                                                                          "allOf": [
                                                                                                                            {
                                                                                                                              "if": {
                                                                                                                                "type": "object",
                                                                                                                                "required": [
                                                                                                                                  "exclude"
                                                                                                                                ],
                                                                                                                                "properties": {
                                                                                                                                  "exclude": {}
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "then": {
                                                                                                                                "not": {
                                                                                                                                  "required": [
                                                                                                                                    "include"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              }
                                                                                                                            },
                                                                                                                            {
                                                                                                                              "if": {
                                                                                                                                "type": "object",
                                                                                                                                "required": [
                                                                                                                                  "include"
                                                                                                                                ],
                                                                                                                                "properties": {
                                                                                                                                  "include": {}
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "then": {
                                                                                                                                "not": {
                                                                                                                                  "required": [
                                                                                                                                    "exclude"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              }
                                                                                                                            }
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "actions": {
                                                                                                                          "description": "Specifies a list of actions.",
                                                                                                                          "type": "array",
                                                                                                                          "items": {
                                                                                                                            "type": "object",
                                                                                                                            "additionalProperties": false,
                                                                                                                            "properties": {
                                                                                                                              "action": {
                                                                                                                                "description": "Specifies an action to perform",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ],
                                                                                                                                "enum": [
                                                                                                                                  "ASN1ContentExtractor",
                                                                                                                                  "Base64Decode",
                                                                                                                                  "ConditionChecker",
                                                                                                                                  "CheckDataSize",
                                                                                                                                  "CheckMimeType",
                                                                                                                                  "JsonPathExtract",
                                                                                                                                  "JsonPathExtractToVars",
                                                                                                                                  "JsonValidation",
                                                                                                                                  "XsdValidation",
                                                                                                                                  "PostFormDataToFlateJson",
                                                                                                                                  "MultipartExtract",
                                                                                                                                  "SetMessageFromVar",
                                                                                                                                  "SetVarFromMessage",
                                                                                                                                  "JwsToJson",
                                                                                                                                  "XPathExtract",
                                                                                                                                  "XPathExtractToVars",
                                                                                                                                  "SharedMapDeleter",
                                                                                                                                  "SharedMapRemover",
                                                                                                                                  "SharedMapSetter",
                                                                                                                                  "SharedMapGetter",
                                                                                                                                  "RandomNumberToVar",
                                                                                                                                  "VarsToSharedMap",
                                                                                                                                  "SharedMapToVars",
                                                                                                                                  "AntivirusFileChecker",
                                                                                                                                  "MtomExtractor",
                                                                                                                                  "JsonTransformer",
                                                                                                                                  "SetVar",
                                                                                                                                  "GraphQLRequestValidation",
                                                                                                                                  "ProtobufValidation",
                                                                                                                                  "OpenApiValidation",
                                                                                                                                  "DelimiterSplitter",
                                                                                                                                  "VarsToFile",
                                                                                                                                  "FileToVars",
                                                                                                                                  "WsdlValidation",
                                                                                                                                  "HttpFilter",
                                                                                                                                  "ProtobufToJson",
                                                                                                                                  "FilterMds",
                                                                                                                                  "OcspSignValidator",
                                                                                                                                  "OcspToJson",
                                                                                                                                  "ASN1ToJson",
                                                                                                                                  "XmlTransformer",
                                                                                                                                  "UrlEncode",
                                                                                                                                  "UrlDecodeUni",
                                                                                                                                  "UrlDecode",
                                                                                                                                  "HexDecode",
                                                                                                                                  "HexEncode",
                                                                                                                                  "ToLowerCase",
                                                                                                                                  "ToUpperCase",
                                                                                                                                  "Utf8ToUnicode",
                                                                                                                                  "Trim",
                                                                                                                                  "ICAPFileChecker",
                                                                                                                                  "MessageToFile",
                                                                                                                                  "MultipartFormGenerateFromVar",
                                                                                                                                  "HttpSender",
                                                                                                                                  "MessageAccumulator",
                                                                                                                                  "MessageFromAccumulator",
                                                                                                                                  "MessageFromPattern",
                                                                                                                                  "MultipartFormGenerateFromMessage",
                                                                                                                                  "JsonPatchMessage",
                                                                                                                                  "JsonPatchVar",
                                                                                                                                  "DigestFromMessage",
                                                                                                                                  "Base64Encode",
                                                                                                                                  "HMac",
                                                                                                                                  "FileToMessage",
                                                                                                                                  "JwtVerifier",
                                                                                                                                  "CharsetChecker",
                                                                                                                                  "LdapSearch",
                                                                                                                                  "UnicodeDecode",
                                                                                                                                  "MessageMapper",
                                                                                                                                  "SimpleRateLimiter",
                                                                                                                                  "EventSourceConverter",
                                                                                                                                  "LazySessionTimeChecker",
                                                                                                                                  "CalculateMessageProperties"
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "id": {
                                                                                                                                "description": "An identificator of action",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "conditions": {
                                                                                                                                "description": "Specifies the conditions for performina an action.",
                                                                                                                                "type": "array",
                                                                                                                                "items": {
                                                                                                                                  "type": "object",
                                                                                                                                  "additionalProperties": false,
                                                                                                                                  "properties": {
                                                                                                                                    "var": {
                                                                                                                                      "description": "Specifies a variable to check.",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "operator": {
                                                                                                                                      "description": "Specifies an operator.",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ],
                                                                                                                                      "enum": [
                                                                                                                                        "=",
                                                                                                                                        "!=",
                                                                                                                                        "<=",
                                                                                                                                        ">=",
                                                                                                                                        ">",
                                                                                                                                        "<",
                                                                                                                                        "in",
                                                                                                                                        "not_in",
                                                                                                                                        "~",
                                                                                                                                        "~*",
                                                                                                                                        "!~",
                                                                                                                                        "!~*",
                                                                                                                                        "ip_range",
                                                                                                                                        "!ip_range",
                                                                                                                                        "dn_mask",
                                                                                                                                        "!dn_mask"
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "val": {
                                                                                                                                      "description": "Specifies a value to check.",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "required": [
                                                                                                                                    "var",
                                                                                                                                    "operator",
                                                                                                                                    "val"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "trace_config": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "enableAllActions": {
                                                                                                                                    "description": "enable tracing of all actions in chains",
                                                                                                                                    "type": "boolean"
                                                                                                                                  },
                                                                                                                                  "enableAllChains": {
                                                                                                                                    "description": "enable tracing of all actions in child chains",
                                                                                                                                    "type": "boolean"
                                                                                                                                  },
                                                                                                                                  "mode": {
                                                                                                                                    "description": "Enable or disable tracing at this level.",
                                                                                                                                    "type": "object",
                                                                                                                                    "additionalProperties": false,
                                                                                                                                    "properties": {
                                                                                                                                      "enabled": {
                                                                                                                                        "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                        "type": [
                                                                                                                                          "number",
                                                                                                                                          "string"
                                                                                                                                        ],
                                                                                                                                        "enum": [
                                                                                                                                          "on",
                                                                                                                                          "off",
                                                                                                                                          "var_based"
                                                                                                                                        ]
                                                                                                                                      },
                                                                                                                                      "var": {
                                                                                                                                        "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                        "type": [
                                                                                                                                          "number",
                                                                                                                                          "string"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "spanAttributes": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "name": {
                                                                                                                                          "description": "name of attribute",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "value": {
                                                                                                                                          "description": "value of attribute, can contain variables",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        }
                                                                                                                                      }
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "spanName": {
                                                                                                                                    "description": "Specify name of span",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "enableSocketsTracing": {
                                                                                                                                    "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                                    "type": "boolean"
                                                                                                                                  }
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "params": {
                                                                                                                                "description": "Specifies extra parameters for the actions.",
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": true
                                                                                                                              },
                                                                                                                              "requiredChildOneOf": {
                                                                                                                                "description": "Specifies unverifed action check",
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "decision": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ],
                                                                                                                                    "enum": [
                                                                                                                                      "BLOCK",
                                                                                                                                      "WARN"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "onlyCheckers": {
                                                                                                                                    "type": "boolean"
                                                                                                                                  },
                                                                                                                                  "include": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "exclude": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "string"
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "decision"
                                                                                                                                ],
                                                                                                                                "allOf": [
                                                                                                                                  {
                                                                                                                                    "if": {
                                                                                                                                      "type": "object",
                                                                                                                                      "required": [
                                                                                                                                        "exclude"
                                                                                                                                      ],
                                                                                                                                      "properties": {
                                                                                                                                        "exclude": {}
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "then": {
                                                                                                                                      "not": {
                                                                                                                                        "required": [
                                                                                                                                          "include"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  {
                                                                                                                                    "if": {
                                                                                                                                      "type": "object",
                                                                                                                                      "required": [
                                                                                                                                        "include"
                                                                                                                                      ],
                                                                                                                                      "properties": {
                                                                                                                                        "include": {}
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "then": {
                                                                                                                                      "not": {
                                                                                                                                        "required": [
                                                                                                                                          "exclude"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "actions": {
                                                                                                                                "description": "Specifies a list of actions.",
                                                                                                                                "type": "array",
                                                                                                                                "items": {
                                                                                                                                  "type": "object",
                                                                                                                                  "additionalProperties": false,
                                                                                                                                  "properties": {
                                                                                                                                    "action": {
                                                                                                                                      "description": "Specifies an action to perform",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ],
                                                                                                                                      "enum": [
                                                                                                                                        "ASN1ContentExtractor",
                                                                                                                                        "Base64Decode",
                                                                                                                                        "ConditionChecker",
                                                                                                                                        "CheckDataSize",
                                                                                                                                        "CheckMimeType",
                                                                                                                                        "JsonPathExtract",
                                                                                                                                        "JsonPathExtractToVars",
                                                                                                                                        "JsonValidation",
                                                                                                                                        "XsdValidation",
                                                                                                                                        "PostFormDataToFlateJson",
                                                                                                                                        "MultipartExtract",
                                                                                                                                        "SetMessageFromVar",
                                                                                                                                        "SetVarFromMessage",
                                                                                                                                        "JwsToJson",
                                                                                                                                        "XPathExtract",
                                                                                                                                        "XPathExtractToVars",
                                                                                                                                        "SharedMapDeleter",
                                                                                                                                        "SharedMapRemover",
                                                                                                                                        "SharedMapSetter",
                                                                                                                                        "SharedMapGetter",
                                                                                                                                        "RandomNumberToVar",
                                                                                                                                        "VarsToSharedMap",
                                                                                                                                        "SharedMapToVars",
                                                                                                                                        "AntivirusFileChecker",
                                                                                                                                        "MtomExtractor",
                                                                                                                                        "JsonTransformer",
                                                                                                                                        "SetVar",
                                                                                                                                        "GraphQLRequestValidation",
                                                                                                                                        "ProtobufValidation",
                                                                                                                                        "OpenApiValidation",
                                                                                                                                        "DelimiterSplitter",
                                                                                                                                        "VarsToFile",
                                                                                                                                        "FileToVars",
                                                                                                                                        "WsdlValidation",
                                                                                                                                        "HttpFilter",
                                                                                                                                        "ProtobufToJson",
                                                                                                                                        "FilterMds",
                                                                                                                                        "OcspSignValidator",
                                                                                                                                        "OcspToJson",
                                                                                                                                        "ASN1ToJson",
                                                                                                                                        "XmlTransformer",
                                                                                                                                        "UrlEncode",
                                                                                                                                        "UrlDecodeUni",
                                                                                                                                        "UrlDecode",
                                                                                                                                        "HexDecode",
                                                                                                                                        "HexEncode",
                                                                                                                                        "ToLowerCase",
                                                                                                                                        "ToUpperCase",
                                                                                                                                        "Utf8ToUnicode",
                                                                                                                                        "Trim",
                                                                                                                                        "ICAPFileChecker",
                                                                                                                                        "MessageToFile",
                                                                                                                                        "MultipartFormGenerateFromVar",
                                                                                                                                        "HttpSender",
                                                                                                                                        "MessageAccumulator",
                                                                                                                                        "MessageFromAccumulator",
                                                                                                                                        "MessageFromPattern",
                                                                                                                                        "MultipartFormGenerateFromMessage",
                                                                                                                                        "JsonPatchMessage",
                                                                                                                                        "JsonPatchVar",
                                                                                                                                        "DigestFromMessage",
                                                                                                                                        "Base64Encode",
                                                                                                                                        "HMac",
                                                                                                                                        "FileToMessage",
                                                                                                                                        "JwtVerifier",
                                                                                                                                        "CharsetChecker",
                                                                                                                                        "LdapSearch",
                                                                                                                                        "UnicodeDecode",
                                                                                                                                        "MessageMapper",
                                                                                                                                        "SimpleRateLimiter",
                                                                                                                                        "EventSourceConverter",
                                                                                                                                        "LazySessionTimeChecker",
                                                                                                                                        "CalculateMessageProperties"
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "id": {
                                                                                                                                      "description": "An identificator of action",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "conditions": {
                                                                                                                                      "description": "Specifies the conditions for performina an action.",
                                                                                                                                      "type": "array",
                                                                                                                                      "items": {
                                                                                                                                        "type": "object",
                                                                                                                                        "additionalProperties": false,
                                                                                                                                        "properties": {
                                                                                                                                          "var": {
                                                                                                                                            "description": "Specifies a variable to check.",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "operator": {
                                                                                                                                            "description": "Specifies an operator.",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ],
                                                                                                                                            "enum": [
                                                                                                                                              "=",
                                                                                                                                              "!=",
                                                                                                                                              "<=",
                                                                                                                                              ">=",
                                                                                                                                              ">",
                                                                                                                                              "<",
                                                                                                                                              "in",
                                                                                                                                              "not_in",
                                                                                                                                              "~",
                                                                                                                                              "~*",
                                                                                                                                              "!~",
                                                                                                                                              "!~*",
                                                                                                                                              "ip_range",
                                                                                                                                              "!ip_range",
                                                                                                                                              "dn_mask",
                                                                                                                                              "!dn_mask"
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "val": {
                                                                                                                                            "description": "Specifies a value to check.",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "required": [
                                                                                                                                          "var",
                                                                                                                                          "operator",
                                                                                                                                          "val"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "trace_config": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "enableAllActions": {
                                                                                                                                          "description": "enable tracing of all actions in chains",
                                                                                                                                          "type": "boolean"
                                                                                                                                        },
                                                                                                                                        "enableAllChains": {
                                                                                                                                          "description": "enable tracing of all actions in child chains",
                                                                                                                                          "type": "boolean"
                                                                                                                                        },
                                                                                                                                        "mode": {
                                                                                                                                          "description": "Enable or disable tracing at this level.",
                                                                                                                                          "type": "object",
                                                                                                                                          "additionalProperties": false,
                                                                                                                                          "properties": {
                                                                                                                                            "enabled": {
                                                                                                                                              "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                              "type": [
                                                                                                                                                "number",
                                                                                                                                                "string"
                                                                                                                                              ],
                                                                                                                                              "enum": [
                                                                                                                                                "on",
                                                                                                                                                "off",
                                                                                                                                                "var_based"
                                                                                                                                              ]
                                                                                                                                            },
                                                                                                                                            "var": {
                                                                                                                                              "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                              "type": [
                                                                                                                                                "number",
                                                                                                                                                "string"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "spanAttributes": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "name": {
                                                                                                                                                "description": "name of attribute",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "value": {
                                                                                                                                                "description": "value of attribute, can contain variables",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              }
                                                                                                                                            }
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "spanName": {
                                                                                                                                          "description": "Specify name of span",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "enableSocketsTracing": {
                                                                                                                                          "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                                          "type": "boolean"
                                                                                                                                        }
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "params": {
                                                                                                                                      "description": "Specifies extra parameters for the actions.",
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": true
                                                                                                                                    },
                                                                                                                                    "requiredChildOneOf": {
                                                                                                                                      "description": "Specifies unverifed action check",
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "decision": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ],
                                                                                                                                          "enum": [
                                                                                                                                            "BLOCK",
                                                                                                                                            "WARN"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "onlyCheckers": {
                                                                                                                                          "type": "boolean"
                                                                                                                                        },
                                                                                                                                        "include": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "exclude": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "string"
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "decision"
                                                                                                                                      ],
                                                                                                                                      "allOf": [
                                                                                                                                        {
                                                                                                                                          "if": {
                                                                                                                                            "type": "object",
                                                                                                                                            "required": [
                                                                                                                                              "exclude"
                                                                                                                                            ],
                                                                                                                                            "properties": {
                                                                                                                                              "exclude": {}
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "then": {
                                                                                                                                            "not": {
                                                                                                                                              "required": [
                                                                                                                                                "include"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                          "if": {
                                                                                                                                            "type": "object",
                                                                                                                                            "required": [
                                                                                                                                              "include"
                                                                                                                                            ],
                                                                                                                                            "properties": {
                                                                                                                                              "include": {}
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "then": {
                                                                                                                                            "not": {
                                                                                                                                              "required": [
                                                                                                                                                "exclude"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "actions": {
                                                                                                                                      "description": "Specifies a list of actions.",
                                                                                                                                      "type": "array",
                                                                                                                                      "items": {
                                                                                                                                        "type": "object",
                                                                                                                                        "additionalProperties": false,
                                                                                                                                        "properties": {
                                                                                                                                          "action": {
                                                                                                                                            "description": "Specifies an action to perform",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ],
                                                                                                                                            "enum": [
                                                                                                                                              "ASN1ContentExtractor",
                                                                                                                                              "Base64Decode",
                                                                                                                                              "ConditionChecker",
                                                                                                                                              "CheckDataSize",
                                                                                                                                              "CheckMimeType",
                                                                                                                                              "JsonPathExtract",
                                                                                                                                              "JsonPathExtractToVars",
                                                                                                                                              "JsonValidation",
                                                                                                                                              "XsdValidation",
                                                                                                                                              "PostFormDataToFlateJson",
                                                                                                                                              "MultipartExtract",
                                                                                                                                              "SetMessageFromVar",
                                                                                                                                              "SetVarFromMessage",
                                                                                                                                              "JwsToJson",
                                                                                                                                              "XPathExtract",
                                                                                                                                              "XPathExtractToVars",
                                                                                                                                              "SharedMapDeleter",
                                                                                                                                              "SharedMapRemover",
                                                                                                                                              "SharedMapSetter",
                                                                                                                                              "SharedMapGetter",
                                                                                                                                              "RandomNumberToVar",
                                                                                                                                              "VarsToSharedMap",
                                                                                                                                              "SharedMapToVars",
                                                                                                                                              "AntivirusFileChecker",
                                                                                                                                              "MtomExtractor",
                                                                                                                                              "JsonTransformer",
                                                                                                                                              "SetVar",
                                                                                                                                              "GraphQLRequestValidation",
                                                                                                                                              "ProtobufValidation",
                                                                                                                                              "OpenApiValidation",
                                                                                                                                              "DelimiterSplitter",
                                                                                                                                              "VarsToFile",
                                                                                                                                              "FileToVars",
                                                                                                                                              "WsdlValidation",
                                                                                                                                              "HttpFilter",
                                                                                                                                              "ProtobufToJson",
                                                                                                                                              "FilterMds",
                                                                                                                                              "OcspSignValidator",
                                                                                                                                              "OcspToJson",
                                                                                                                                              "ASN1ToJson",
                                                                                                                                              "XmlTransformer",
                                                                                                                                              "UrlEncode",
                                                                                                                                              "UrlDecodeUni",
                                                                                                                                              "UrlDecode",
                                                                                                                                              "HexDecode",
                                                                                                                                              "HexEncode",
                                                                                                                                              "ToLowerCase",
                                                                                                                                              "ToUpperCase",
                                                                                                                                              "Utf8ToUnicode",
                                                                                                                                              "Trim",
                                                                                                                                              "ICAPFileChecker",
                                                                                                                                              "MessageToFile",
                                                                                                                                              "MultipartFormGenerateFromVar",
                                                                                                                                              "HttpSender",
                                                                                                                                              "MessageAccumulator",
                                                                                                                                              "MessageFromAccumulator",
                                                                                                                                              "MessageFromPattern",
                                                                                                                                              "MultipartFormGenerateFromMessage",
                                                                                                                                              "JsonPatchMessage",
                                                                                                                                              "JsonPatchVar",
                                                                                                                                              "DigestFromMessage",
                                                                                                                                              "Base64Encode",
                                                                                                                                              "HMac",
                                                                                                                                              "FileToMessage",
                                                                                                                                              "JwtVerifier",
                                                                                                                                              "CharsetChecker",
                                                                                                                                              "LdapSearch",
                                                                                                                                              "UnicodeDecode",
                                                                                                                                              "MessageMapper",
                                                                                                                                              "SimpleRateLimiter",
                                                                                                                                              "EventSourceConverter",
                                                                                                                                              "LazySessionTimeChecker",
                                                                                                                                              "CalculateMessageProperties"
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "id": {
                                                                                                                                            "description": "An identificator of action",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "conditions": {
                                                                                                                                            "description": "Specifies the conditions for performina an action.",
                                                                                                                                            "type": "array",
                                                                                                                                            "items": {
                                                                                                                                              "type": "object",
                                                                                                                                              "additionalProperties": false,
                                                                                                                                              "properties": {
                                                                                                                                                "var": {
                                                                                                                                                  "description": "Specifies a variable to check.",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ]
                                                                                                                                                },
                                                                                                                                                "operator": {
                                                                                                                                                  "description": "Specifies an operator.",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ],
                                                                                                                                                  "enum": [
                                                                                                                                                    "=",
                                                                                                                                                    "!=",
                                                                                                                                                    "<=",
                                                                                                                                                    ">=",
                                                                                                                                                    ">",
                                                                                                                                                    "<",
                                                                                                                                                    "in",
                                                                                                                                                    "not_in",
                                                                                                                                                    "~",
                                                                                                                                                    "~*",
                                                                                                                                                    "!~",
                                                                                                                                                    "!~*",
                                                                                                                                                    "ip_range",
                                                                                                                                                    "!ip_range",
                                                                                                                                                    "dn_mask",
                                                                                                                                                    "!dn_mask"
                                                                                                                                                  ]
                                                                                                                                                },
                                                                                                                                                "val": {
                                                                                                                                                  "description": "Specifies a value to check.",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "required": [
                                                                                                                                                "var",
                                                                                                                                                "operator",
                                                                                                                                                "val"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "trace_config": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "enableAllActions": {
                                                                                                                                                "description": "enable tracing of all actions in chains",
                                                                                                                                                "type": "boolean"
                                                                                                                                              },
                                                                                                                                              "enableAllChains": {
                                                                                                                                                "description": "enable tracing of all actions in child chains",
                                                                                                                                                "type": "boolean"
                                                                                                                                              },
                                                                                                                                              "mode": {
                                                                                                                                                "description": "Enable or disable tracing at this level.",
                                                                                                                                                "type": "object",
                                                                                                                                                "additionalProperties": false,
                                                                                                                                                "properties": {
                                                                                                                                                  "enabled": {
                                                                                                                                                    "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                                    "type": [
                                                                                                                                                      "number",
                                                                                                                                                      "string"
                                                                                                                                                    ],
                                                                                                                                                    "enum": [
                                                                                                                                                      "on",
                                                                                                                                                      "off",
                                                                                                                                                      "var_based"
                                                                                                                                                    ]
                                                                                                                                                  },
                                                                                                                                                  "var": {
                                                                                                                                                    "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                                    "type": [
                                                                                                                                                      "number",
                                                                                                                                                      "string"
                                                                                                                                                    ]
                                                                                                                                                  }
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "spanAttributes": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "name": {
                                                                                                                                                      "description": "name of attribute",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "value": {
                                                                                                                                                      "description": "value of attribute, can contain variables",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    }
                                                                                                                                                  }
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "spanName": {
                                                                                                                                                "description": "Specify name of span",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "enableSocketsTracing": {
                                                                                                                                                "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                                                "type": "boolean"
                                                                                                                                              }
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "params": {
                                                                                                                                            "description": "Specifies extra parameters for the actions.",
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": true
                                                                                                                                          },
                                                                                                                                          "requiredChildOneOf": {
                                                                                                                                            "description": "Specifies unverifed action check",
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "decision": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ],
                                                                                                                                                "enum": [
                                                                                                                                                  "BLOCK",
                                                                                                                                                  "WARN"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "onlyCheckers": {
                                                                                                                                                "type": "boolean"
                                                                                                                                              },
                                                                                                                                              "include": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "exclude": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "string"
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "decision"
                                                                                                                                            ],
                                                                                                                                            "allOf": [
                                                                                                                                              {
                                                                                                                                                "if": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "required": [
                                                                                                                                                    "exclude"
                                                                                                                                                  ],
                                                                                                                                                  "properties": {
                                                                                                                                                    "exclude": {}
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "then": {
                                                                                                                                                  "not": {
                                                                                                                                                    "required": [
                                                                                                                                                      "include"
                                                                                                                                                    ]
                                                                                                                                                  }
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              {
                                                                                                                                                "if": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "required": [
                                                                                                                                                    "include"
                                                                                                                                                  ],
                                                                                                                                                  "properties": {
                                                                                                                                                    "include": {}
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "then": {
                                                                                                                                                  "not": {
                                                                                                                                                    "required": [
                                                                                                                                                      "exclude"
                                                                                                                                                    ]
                                                                                                                                                  }
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "actions": {
                                                                                                                                            "description": "Specifies a list of actions.",
                                                                                                                                            "type": "array",
                                                                                                                                            "items": {
                                                                                                                                              "type": "object",
                                                                                                                                              "additionalProperties": false,
                                                                                                                                              "properties": {
                                                                                                                                                "action": {
                                                                                                                                                  "description": "Specifies an action to perform",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ],
                                                                                                                                                  "enum": [
                                                                                                                                                    "ASN1ContentExtractor",
                                                                                                                                                    "Base64Decode",
                                                                                                                                                    "ConditionChecker",
                                                                                                                                                    "CheckDataSize",
                                                                                                                                                    "CheckMimeType",
                                                                                                                                                    "JsonPathExtract",
                                                                                                                                                    "JsonPathExtractToVars",
                                                                                                                                                    "JsonValidation",
                                                                                                                                                    "XsdValidation",
                                                                                                                                                    "PostFormDataToFlateJson",
                                                                                                                                                    "MultipartExtract",
                                                                                                                                                    "SetMessageFromVar",
                                                                                                                                                    "SetVarFromMessage",
                                                                                                                                                    "JwsToJson",
                                                                                                                                                    "XPathExtract",
                                                                                                                                                    "XPathExtractToVars",
                                                                                                                                                    "SharedMapDeleter",
                                                                                                                                                    "SharedMapRemover",
                                                                                                                                                    "SharedMapSetter",
                                                                                                                                                    "SharedMapGetter",
                                                                                                                                                    "RandomNumberToVar",
                                                                                                                                                    "VarsToSharedMap",
                                                                                                                                                    "SharedMapToVars",
                                                                                                                                                    "AntivirusFileChecker",
                                                                                                                                                    "MtomExtractor",
                                                                                                                                                    "JsonTransformer",
                                                                                                                                                    "SetVar",
                                                                                                                                                    "GraphQLRequestValidation",
                                                                                                                                                    "ProtobufValidation",
                                                                                                                                                    "OpenApiValidation",
                                                                                                                                                    "DelimiterSplitter",
                                                                                                                                                    "VarsToFile",
                                                                                                                                                    "FileToVars",
                                                                                                                                                    "WsdlValidation",
                                                                                                                                                    "HttpFilter",
                                                                                                                                                    "ProtobufToJson",
                                                                                                                                                    "FilterMds",
                                                                                                                                                    "OcspSignValidator",
                                                                                                                                                    "OcspToJson",
                                                                                                                                                    "ASN1ToJson",
                                                                                                                                                    "XmlTransformer",
                                                                                                                                                    "UrlEncode",
                                                                                                                                                    "UrlDecodeUni",
                                                                                                                                                    "UrlDecode",
                                                                                                                                                    "HexDecode",
                                                                                                                                                    "HexEncode",
                                                                                                                                                    "ToLowerCase",
                                                                                                                                                    "ToUpperCase",
                                                                                                                                                    "Utf8ToUnicode",
                                                                                                                                                    "Trim",
                                                                                                                                                    "ICAPFileChecker",
                                                                                                                                                    "MessageToFile",
                                                                                                                                                    "MultipartFormGenerateFromVar",
                                                                                                                                                    "HttpSender",
                                                                                                                                                    "MessageAccumulator",
                                                                                                                                                    "MessageFromAccumulator",
                                                                                                                                                    "MessageFromPattern",
                                                                                                                                                    "MultipartFormGenerateFromMessage",
                                                                                                                                                    "JsonPatchMessage",
                                                                                                                                                    "JsonPatchVar",
                                                                                                                                                    "DigestFromMessage",
                                                                                                                                                    "Base64Encode",
                                                                                                                                                    "HMac",
                                                                                                                                                    "FileToMessage",
                                                                                                                                                    "JwtVerifier",
                                                                                                                                                    "CharsetChecker",
                                                                                                                                                    "LdapSearch",
                                                                                                                                                    "UnicodeDecode",
                                                                                                                                                    "MessageMapper",
                                                                                                                                                    "SimpleRateLimiter",
                                                                                                                                                    "EventSourceConverter",
                                                                                                                                                    "LazySessionTimeChecker",
                                                                                                                                                    "CalculateMessageProperties"
                                                                                                                                                  ]
                                                                                                                                                },
                                                                                                                                                "id": {
                                                                                                                                                  "description": "An identificator of action",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ]
                                                                                                                                                },
                                                                                                                                                "conditions": {
                                                                                                                                                  "description": "Specifies the conditions for performina an action.",
                                                                                                                                                  "type": "array",
                                                                                                                                                  "items": {
                                                                                                                                                    "type": "object",
                                                                                                                                                    "additionalProperties": false,
                                                                                                                                                    "properties": {
                                                                                                                                                      "var": {
                                                                                                                                                        "description": "Specifies a variable to check.",
                                                                                                                                                        "type": [
                                                                                                                                                          "number",
                                                                                                                                                          "string"
                                                                                                                                                        ]
                                                                                                                                                      },
                                                                                                                                                      "operator": {
                                                                                                                                                        "description": "Specifies an operator.",
                                                                                                                                                        "type": [
                                                                                                                                                          "number",
                                                                                                                                                          "string"
                                                                                                                                                        ],
                                                                                                                                                        "enum": [
                                                                                                                                                          "=",
                                                                                                                                                          "!=",
                                                                                                                                                          "<=",
                                                                                                                                                          ">=",
                                                                                                                                                          ">",
                                                                                                                                                          "<",
                                                                                                                                                          "in",
                                                                                                                                                          "not_in",
                                                                                                                                                          "~",
                                                                                                                                                          "~*",
                                                                                                                                                          "!~",
                                                                                                                                                          "!~*",
                                                                                                                                                          "ip_range",
                                                                                                                                                          "!ip_range",
                                                                                                                                                          "dn_mask",
                                                                                                                                                          "!dn_mask"
                                                                                                                                                        ]
                                                                                                                                                      },
                                                                                                                                                      "val": {
                                                                                                                                                        "description": "Specifies a value to check.",
                                                                                                                                                        "type": [
                                                                                                                                                          "number",
                                                                                                                                                          "string"
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    },
                                                                                                                                                    "required": [
                                                                                                                                                      "var",
                                                                                                                                                      "operator",
                                                                                                                                                      "val"
                                                                                                                                                    ]
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "params": {
                                                                                                                                                  "description": "Specifies extra parameters for the actions.",
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": true
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "required": [
                                                                                                                                                "action"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "audit": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "enabled": {
                                                                                                                                                "type": "boolean"
                                                                                                                                              },
                                                                                                                                              "events": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "name": {
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "message": {
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "conditions": {
                                                                                                                                                      "type": "array",
                                                                                                                                                      "items": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "additionalProperties": false,
                                                                                                                                                        "properties": {
                                                                                                                                                          "var": {
                                                                                                                                                            "description": "Specifies a variable to check.",
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "operator": {
                                                                                                                                                            "description": "Specifies an operator.",
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ],
                                                                                                                                                            "enum": [
                                                                                                                                                              "=",
                                                                                                                                                              "!=",
                                                                                                                                                              "<=",
                                                                                                                                                              ">=",
                                                                                                                                                              ">",
                                                                                                                                                              "<",
                                                                                                                                                              "in",
                                                                                                                                                              "not_in",
                                                                                                                                                              "~",
                                                                                                                                                              "~*",
                                                                                                                                                              "!~",
                                                                                                                                                              "!~*",
                                                                                                                                                              "ip_range",
                                                                                                                                                              "!ip_range",
                                                                                                                                                              "dn_mask",
                                                                                                                                                              "!dn_mask"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "val": {
                                                                                                                                                            "description": "Specifies a value to check.",
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          }
                                                                                                                                                        },
                                                                                                                                                        "required": [
                                                                                                                                                          "var",
                                                                                                                                                          "operator",
                                                                                                                                                          "val"
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    },
                                                                                                                                                    "fields": {
                                                                                                                                                      "type": "array",
                                                                                                                                                      "items": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "additionalProperties": false,
                                                                                                                                                        "properties": {
                                                                                                                                                          "key": {
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "val": {
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          }
                                                                                                                                                        },
                                                                                                                                                        "required": [
                                                                                                                                                          "key",
                                                                                                                                                          "val"
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    }
                                                                                                                                                  },
                                                                                                                                                  "required": [
                                                                                                                                                    "name",
                                                                                                                                                    "message"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "enabled"
                                                                                                                                            ],
                                                                                                                                            "allOf": [
                                                                                                                                              {
                                                                                                                                                "if": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "required": [
                                                                                                                                                    "enabled"
                                                                                                                                                  ],
                                                                                                                                                  "properties": {
                                                                                                                                                    "enabled": {
                                                                                                                                                      "const": false
                                                                                                                                                    }
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "then": {
                                                                                                                                                  "required": []
                                                                                                                                                },
                                                                                                                                                "else": {
                                                                                                                                                  "required": [
                                                                                                                                                    "events"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "required": [
                                                                                                                                          "action"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "audit": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "enabled": {
                                                                                                                                          "type": "boolean"
                                                                                                                                        },
                                                                                                                                        "events": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "name": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "message": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "conditions": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "var": {
                                                                                                                                                      "description": "Specifies a variable to check.",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "operator": {
                                                                                                                                                      "description": "Specifies an operator.",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ],
                                                                                                                                                      "enum": [
                                                                                                                                                        "=",
                                                                                                                                                        "!=",
                                                                                                                                                        "<=",
                                                                                                                                                        ">=",
                                                                                                                                                        ">",
                                                                                                                                                        "<",
                                                                                                                                                        "in",
                                                                                                                                                        "not_in",
                                                                                                                                                        "~",
                                                                                                                                                        "~*",
                                                                                                                                                        "!~",
                                                                                                                                                        "!~*",
                                                                                                                                                        "ip_range",
                                                                                                                                                        "!ip_range",
                                                                                                                                                        "dn_mask",
                                                                                                                                                        "!dn_mask"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "val": {
                                                                                                                                                      "description": "Specifies a value to check.",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    }
                                                                                                                                                  },
                                                                                                                                                  "required": [
                                                                                                                                                    "var",
                                                                                                                                                    "operator",
                                                                                                                                                    "val"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "fields": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "key": {
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "val": {
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    }
                                                                                                                                                  },
                                                                                                                                                  "required": [
                                                                                                                                                    "key",
                                                                                                                                                    "val"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "name",
                                                                                                                                              "message"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "enabled"
                                                                                                                                      ],
                                                                                                                                      "allOf": [
                                                                                                                                        {
                                                                                                                                          "if": {
                                                                                                                                            "type": "object",
                                                                                                                                            "required": [
                                                                                                                                              "enabled"
                                                                                                                                            ],
                                                                                                                                            "properties": {
                                                                                                                                              "enabled": {
                                                                                                                                                "const": false
                                                                                                                                              }
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "then": {
                                                                                                                                            "required": []
                                                                                                                                          },
                                                                                                                                          "else": {
                                                                                                                                            "required": [
                                                                                                                                              "events"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "required": [
                                                                                                                                    "action"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "audit": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "enabled": {
                                                                                                                                    "type": "boolean"
                                                                                                                                  },
                                                                                                                                  "events": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "name": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "message": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "conditions": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "var": {
                                                                                                                                                "description": "Specifies a variable to check.",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "operator": {
                                                                                                                                                "description": "Specifies an operator.",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ],
                                                                                                                                                "enum": [
                                                                                                                                                  "=",
                                                                                                                                                  "!=",
                                                                                                                                                  "<=",
                                                                                                                                                  ">=",
                                                                                                                                                  ">",
                                                                                                                                                  "<",
                                                                                                                                                  "in",
                                                                                                                                                  "not_in",
                                                                                                                                                  "~",
                                                                                                                                                  "~*",
                                                                                                                                                  "!~",
                                                                                                                                                  "!~*",
                                                                                                                                                  "ip_range",
                                                                                                                                                  "!ip_range",
                                                                                                                                                  "dn_mask",
                                                                                                                                                  "!dn_mask"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "val": {
                                                                                                                                                "description": "Specifies a value to check.",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "var",
                                                                                                                                              "operator",
                                                                                                                                              "val"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "fields": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "key": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "val": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "key",
                                                                                                                                              "val"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "name",
                                                                                                                                        "message"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "enabled"
                                                                                                                                ],
                                                                                                                                "allOf": [
                                                                                                                                  {
                                                                                                                                    "if": {
                                                                                                                                      "type": "object",
                                                                                                                                      "required": [
                                                                                                                                        "enabled"
                                                                                                                                      ],
                                                                                                                                      "properties": {
                                                                                                                                        "enabled": {
                                                                                                                                          "const": false
                                                                                                                                        }
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "then": {
                                                                                                                                      "required": []
                                                                                                                                    },
                                                                                                                                    "else": {
                                                                                                                                      "required": [
                                                                                                                                        "events"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "required": [
                                                                                                                              "action"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "audit": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "enabled": {
                                                                                                                              "type": "boolean"
                                                                                                                            },
                                                                                                                            "events": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "name": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "message": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "conditions": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "var": {
                                                                                                                                          "description": "Specifies a variable to check.",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "operator": {
                                                                                                                                          "description": "Specifies an operator.",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ],
                                                                                                                                          "enum": [
                                                                                                                                            "=",
                                                                                                                                            "!=",
                                                                                                                                            "<=",
                                                                                                                                            ">=",
                                                                                                                                            ">",
                                                                                                                                            "<",
                                                                                                                                            "in",
                                                                                                                                            "not_in",
                                                                                                                                            "~",
                                                                                                                                            "~*",
                                                                                                                                            "!~",
                                                                                                                                            "!~*",
                                                                                                                                            "ip_range",
                                                                                                                                            "!ip_range",
                                                                                                                                            "dn_mask",
                                                                                                                                            "!dn_mask"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "val": {
                                                                                                                                          "description": "Specifies a value to check.",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "var",
                                                                                                                                        "operator",
                                                                                                                                        "val"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "fields": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "key": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "val": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "key",
                                                                                                                                        "val"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "name",
                                                                                                                                  "message"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "enabled"
                                                                                                                          ],
                                                                                                                          "allOf": [
                                                                                                                            {
                                                                                                                              "if": {
                                                                                                                                "type": "object",
                                                                                                                                "required": [
                                                                                                                                  "enabled"
                                                                                                                                ],
                                                                                                                                "properties": {
                                                                                                                                  "enabled": {
                                                                                                                                    "const": false
                                                                                                                                  }
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "then": {
                                                                                                                                "required": []
                                                                                                                              },
                                                                                                                              "else": {
                                                                                                                                "required": [
                                                                                                                                  "events"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            }
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "required": [
                                                                                                                        "action"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "audit": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "enabled": {
                                                                                                                        "type": "boolean"
                                                                                                                      },
                                                                                                                      "events": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "name": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "message": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "conditions": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "var": {
                                                                                                                                    "description": "Specifies a variable to check.",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "operator": {
                                                                                                                                    "description": "Specifies an operator.",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ],
                                                                                                                                    "enum": [
                                                                                                                                      "=",
                                                                                                                                      "!=",
                                                                                                                                      "<=",
                                                                                                                                      ">=",
                                                                                                                                      ">",
                                                                                                                                      "<",
                                                                                                                                      "in",
                                                                                                                                      "not_in",
                                                                                                                                      "~",
                                                                                                                                      "~*",
                                                                                                                                      "!~",
                                                                                                                                      "!~*",
                                                                                                                                      "ip_range",
                                                                                                                                      "!ip_range",
                                                                                                                                      "dn_mask",
                                                                                                                                      "!dn_mask"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "val": {
                                                                                                                                    "description": "Specifies a value to check.",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "var",
                                                                                                                                  "operator",
                                                                                                                                  "val"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "fields": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "key": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "val": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "key",
                                                                                                                                  "val"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "name",
                                                                                                                            "message"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "enabled"
                                                                                                                    ],
                                                                                                                    "allOf": [
                                                                                                                      {
                                                                                                                        "if": {
                                                                                                                          "type": "object",
                                                                                                                          "required": [
                                                                                                                            "enabled"
                                                                                                                          ],
                                                                                                                          "properties": {
                                                                                                                            "enabled": {
                                                                                                                              "const": false
                                                                                                                            }
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "then": {
                                                                                                                          "required": []
                                                                                                                        },
                                                                                                                        "else": {
                                                                                                                          "required": [
                                                                                                                            "events"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      }
                                                                                                                    ]
                                                                                                                  }
                                                                                                                },
                                                                                                                "required": [
                                                                                                                  "action"
                                                                                                                ]
                                                                                                              }
                                                                                                            },
                                                                                                            "audit": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "enabled": {
                                                                                                                  "type": "boolean"
                                                                                                                },
                                                                                                                "events": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "name": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "message": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "conditions": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "var": {
                                                                                                                              "description": "Specifies a variable to check.",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "operator": {
                                                                                                                              "description": "Specifies an operator.",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ],
                                                                                                                              "enum": [
                                                                                                                                "=",
                                                                                                                                "!=",
                                                                                                                                "<=",
                                                                                                                                ">=",
                                                                                                                                ">",
                                                                                                                                "<",
                                                                                                                                "in",
                                                                                                                                "not_in",
                                                                                                                                "~",
                                                                                                                                "~*",
                                                                                                                                "!~",
                                                                                                                                "!~*",
                                                                                                                                "ip_range",
                                                                                                                                "!ip_range",
                                                                                                                                "dn_mask",
                                                                                                                                "!dn_mask"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "val": {
                                                                                                                              "description": "Specifies a value to check.",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "var",
                                                                                                                            "operator",
                                                                                                                            "val"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "fields": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "key": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "val": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "key",
                                                                                                                            "val"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "name",
                                                                                                                      "message"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "enabled"
                                                                                                              ],
                                                                                                              "allOf": [
                                                                                                                {
                                                                                                                  "if": {
                                                                                                                    "type": "object",
                                                                                                                    "required": [
                                                                                                                      "enabled"
                                                                                                                    ],
                                                                                                                    "properties": {
                                                                                                                      "enabled": {
                                                                                                                        "const": false
                                                                                                                      }
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "then": {
                                                                                                                    "required": []
                                                                                                                  },
                                                                                                                  "else": {
                                                                                                                    "required": [
                                                                                                                      "events"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                }
                                                                                                              ]
                                                                                                            }
                                                                                                          },
                                                                                                          "required": [
                                                                                                            "action"
                                                                                                          ]
                                                                                                        }
                                                                                                      },
                                                                                                      "audit": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "enabled": {
                                                                                                            "type": "boolean"
                                                                                                          },
                                                                                                          "events": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "name": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "message": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "conditions": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "var": {
                                                                                                                        "description": "Specifies a variable to check.",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "operator": {
                                                                                                                        "description": "Specifies an operator.",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ],
                                                                                                                        "enum": [
                                                                                                                          "=",
                                                                                                                          "!=",
                                                                                                                          "<=",
                                                                                                                          ">=",
                                                                                                                          ">",
                                                                                                                          "<",
                                                                                                                          "in",
                                                                                                                          "not_in",
                                                                                                                          "~",
                                                                                                                          "~*",
                                                                                                                          "!~",
                                                                                                                          "!~*",
                                                                                                                          "ip_range",
                                                                                                                          "!ip_range",
                                                                                                                          "dn_mask",
                                                                                                                          "!dn_mask"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "val": {
                                                                                                                        "description": "Specifies a value to check.",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "var",
                                                                                                                      "operator",
                                                                                                                      "val"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                },
                                                                                                                "fields": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "key": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "val": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "key",
                                                                                                                      "val"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "name",
                                                                                                                "message"
                                                                                                              ]
                                                                                                            }
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "enabled"
                                                                                                        ],
                                                                                                        "allOf": [
                                                                                                          {
                                                                                                            "if": {
                                                                                                              "type": "object",
                                                                                                              "required": [
                                                                                                                "enabled"
                                                                                                              ],
                                                                                                              "properties": {
                                                                                                                "enabled": {
                                                                                                                  "const": false
                                                                                                                }
                                                                                                              }
                                                                                                            },
                                                                                                            "then": {
                                                                                                              "required": []
                                                                                                            },
                                                                                                            "else": {
                                                                                                              "required": [
                                                                                                                "events"
                                                                                                              ]
                                                                                                            }
                                                                                                          }
                                                                                                        ]
                                                                                                      }
                                                                                                    },
                                                                                                    "required": [
                                                                                                      "action"
                                                                                                    ]
                                                                                                  }
                                                                                                },
                                                                                                "audit": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "enabled": {
                                                                                                      "type": "boolean"
                                                                                                    },
                                                                                                    "events": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "name": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "message": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "conditions": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "var": {
                                                                                                                  "description": "Specifies a variable to check.",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "operator": {
                                                                                                                  "description": "Specifies an operator.",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ],
                                                                                                                  "enum": [
                                                                                                                    "=",
                                                                                                                    "!=",
                                                                                                                    "<=",
                                                                                                                    ">=",
                                                                                                                    ">",
                                                                                                                    "<",
                                                                                                                    "in",
                                                                                                                    "not_in",
                                                                                                                    "~",
                                                                                                                    "~*",
                                                                                                                    "!~",
                                                                                                                    "!~*",
                                                                                                                    "ip_range",
                                                                                                                    "!ip_range",
                                                                                                                    "dn_mask",
                                                                                                                    "!dn_mask"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "val": {
                                                                                                                  "description": "Specifies a value to check.",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "var",
                                                                                                                "operator",
                                                                                                                "val"
                                                                                                              ]
                                                                                                            }
                                                                                                          },
                                                                                                          "fields": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "key": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "val": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "key",
                                                                                                                "val"
                                                                                                              ]
                                                                                                            }
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "name",
                                                                                                          "message"
                                                                                                        ]
                                                                                                      }
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "enabled"
                                                                                                  ],
                                                                                                  "allOf": [
                                                                                                    {
                                                                                                      "if": {
                                                                                                        "type": "object",
                                                                                                        "required": [
                                                                                                          "enabled"
                                                                                                        ],
                                                                                                        "properties": {
                                                                                                          "enabled": {
                                                                                                            "const": false
                                                                                                          }
                                                                                                        }
                                                                                                      },
                                                                                                      "then": {
                                                                                                        "required": []
                                                                                                      },
                                                                                                      "else": {
                                                                                                        "required": [
                                                                                                          "events"
                                                                                                        ]
                                                                                                      }
                                                                                                    }
                                                                                                  ]
                                                                                                }
                                                                                              },
                                                                                              "required": [
                                                                                                "action"
                                                                                              ]
                                                                                            }
                                                                                          },
                                                                                          "audit": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "enabled": {
                                                                                                "type": "boolean"
                                                                                              },
                                                                                              "events": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "name": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "message": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "conditions": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "var": {
                                                                                                            "description": "Specifies a variable to check.",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "operator": {
                                                                                                            "description": "Specifies an operator.",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ],
                                                                                                            "enum": [
                                                                                                              "=",
                                                                                                              "!=",
                                                                                                              "<=",
                                                                                                              ">=",
                                                                                                              ">",
                                                                                                              "<",
                                                                                                              "in",
                                                                                                              "not_in",
                                                                                                              "~",
                                                                                                              "~*",
                                                                                                              "!~",
                                                                                                              "!~*",
                                                                                                              "ip_range",
                                                                                                              "!ip_range",
                                                                                                              "dn_mask",
                                                                                                              "!dn_mask"
                                                                                                            ]
                                                                                                          },
                                                                                                          "val": {
                                                                                                            "description": "Specifies a value to check.",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "var",
                                                                                                          "operator",
                                                                                                          "val"
                                                                                                        ]
                                                                                                      }
                                                                                                    },
                                                                                                    "fields": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "key": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "val": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "key",
                                                                                                          "val"
                                                                                                        ]
                                                                                                      }
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "name",
                                                                                                    "message"
                                                                                                  ]
                                                                                                }
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "enabled"
                                                                                            ],
                                                                                            "allOf": [
                                                                                              {
                                                                                                "if": {
                                                                                                  "type": "object",
                                                                                                  "required": [
                                                                                                    "enabled"
                                                                                                  ],
                                                                                                  "properties": {
                                                                                                    "enabled": {
                                                                                                      "const": false
                                                                                                    }
                                                                                                  }
                                                                                                },
                                                                                                "then": {
                                                                                                  "required": []
                                                                                                },
                                                                                                "else": {
                                                                                                  "required": [
                                                                                                    "events"
                                                                                                  ]
                                                                                                }
                                                                                              }
                                                                                            ]
                                                                                          }
                                                                                        },
                                                                                        "required": [
                                                                                          "action"
                                                                                        ]
                                                                                      }
                                                                                    },
                                                                                    "audit": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "enabled": {
                                                                                          "type": "boolean"
                                                                                        },
                                                                                        "events": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "name": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "message": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "conditions": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "var": {
                                                                                                      "description": "Specifies a variable to check.",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "operator": {
                                                                                                      "description": "Specifies an operator.",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ],
                                                                                                      "enum": [
                                                                                                        "=",
                                                                                                        "!=",
                                                                                                        "<=",
                                                                                                        ">=",
                                                                                                        ">",
                                                                                                        "<",
                                                                                                        "in",
                                                                                                        "not_in",
                                                                                                        "~",
                                                                                                        "~*",
                                                                                                        "!~",
                                                                                                        "!~*",
                                                                                                        "ip_range",
                                                                                                        "!ip_range",
                                                                                                        "dn_mask",
                                                                                                        "!dn_mask"
                                                                                                      ]
                                                                                                    },
                                                                                                    "val": {
                                                                                                      "description": "Specifies a value to check.",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "var",
                                                                                                    "operator",
                                                                                                    "val"
                                                                                                  ]
                                                                                                }
                                                                                              },
                                                                                              "fields": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "key": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "val": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "key",
                                                                                                    "val"
                                                                                                  ]
                                                                                                }
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "name",
                                                                                              "message"
                                                                                            ]
                                                                                          }
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "enabled"
                                                                                      ],
                                                                                      "allOf": [
                                                                                        {
                                                                                          "if": {
                                                                                            "type": "object",
                                                                                            "required": [
                                                                                              "enabled"
                                                                                            ],
                                                                                            "properties": {
                                                                                              "enabled": {
                                                                                                "const": false
                                                                                              }
                                                                                            }
                                                                                          },
                                                                                          "then": {
                                                                                            "required": []
                                                                                          },
                                                                                          "else": {
                                                                                            "required": [
                                                                                              "events"
                                                                                            ]
                                                                                          }
                                                                                        }
                                                                                      ]
                                                                                    }
                                                                                  },
                                                                                  "required": [
                                                                                    "action"
                                                                                  ]
                                                                                }
                                                                              },
                                                                              "audit": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "enabled": {
                                                                                    "type": "boolean"
                                                                                  },
                                                                                  "events": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "name": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "message": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "conditions": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "var": {
                                                                                                "description": "Specifies a variable to check.",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "operator": {
                                                                                                "description": "Specifies an operator.",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ],
                                                                                                "enum": [
                                                                                                  "=",
                                                                                                  "!=",
                                                                                                  "<=",
                                                                                                  ">=",
                                                                                                  ">",
                                                                                                  "<",
                                                                                                  "in",
                                                                                                  "not_in",
                                                                                                  "~",
                                                                                                  "~*",
                                                                                                  "!~",
                                                                                                  "!~*",
                                                                                                  "ip_range",
                                                                                                  "!ip_range",
                                                                                                  "dn_mask",
                                                                                                  "!dn_mask"
                                                                                                ]
                                                                                              },
                                                                                              "val": {
                                                                                                "description": "Specifies a value to check.",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "var",
                                                                                              "operator",
                                                                                              "val"
                                                                                            ]
                                                                                          }
                                                                                        },
                                                                                        "fields": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "key": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "val": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "key",
                                                                                              "val"
                                                                                            ]
                                                                                          }
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "name",
                                                                                        "message"
                                                                                      ]
                                                                                    }
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "enabled"
                                                                                ],
                                                                                "allOf": [
                                                                                  {
                                                                                    "if": {
                                                                                      "type": "object",
                                                                                      "required": [
                                                                                        "enabled"
                                                                                      ],
                                                                                      "properties": {
                                                                                        "enabled": {
                                                                                          "const": false
                                                                                        }
                                                                                      }
                                                                                    },
                                                                                    "then": {
                                                                                      "required": []
                                                                                    },
                                                                                    "else": {
                                                                                      "required": [
                                                                                        "events"
                                                                                      ]
                                                                                    }
                                                                                  }
                                                                                ]
                                                                              }
                                                                            },
                                                                            "required": [
                                                                              "action"
                                                                            ]
                                                                          }
                                                                        },
                                                                        "audit": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "enabled": {
                                                                              "type": "boolean"
                                                                            },
                                                                            "events": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "name": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "message": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "conditions": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "var": {
                                                                                          "description": "Specifies a variable to check.",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "operator": {
                                                                                          "description": "Specifies an operator.",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ],
                                                                                          "enum": [
                                                                                            "=",
                                                                                            "!=",
                                                                                            "<=",
                                                                                            ">=",
                                                                                            ">",
                                                                                            "<",
                                                                                            "in",
                                                                                            "not_in",
                                                                                            "~",
                                                                                            "~*",
                                                                                            "!~",
                                                                                            "!~*",
                                                                                            "ip_range",
                                                                                            "!ip_range",
                                                                                            "dn_mask",
                                                                                            "!dn_mask"
                                                                                          ]
                                                                                        },
                                                                                        "val": {
                                                                                          "description": "Specifies a value to check.",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "var",
                                                                                        "operator",
                                                                                        "val"
                                                                                      ]
                                                                                    }
                                                                                  },
                                                                                  "fields": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "key": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "val": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "key",
                                                                                        "val"
                                                                                      ]
                                                                                    }
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "name",
                                                                                  "message"
                                                                                ]
                                                                              }
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "enabled"
                                                                          ],
                                                                          "allOf": [
                                                                            {
                                                                              "if": {
                                                                                "type": "object",
                                                                                "required": [
                                                                                  "enabled"
                                                                                ],
                                                                                "properties": {
                                                                                  "enabled": {
                                                                                    "const": false
                                                                                  }
                                                                                }
                                                                              },
                                                                              "then": {
                                                                                "required": []
                                                                              },
                                                                              "else": {
                                                                                "required": [
                                                                                  "events"
                                                                                ]
                                                                              }
                                                                            }
                                                                          ]
                                                                        }
                                                                      },
                                                                      "required": [
                                                                        "action"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "audit": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "enabled": {
                                                                        "type": "boolean"
                                                                      },
                                                                      "events": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "name": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "message": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "conditions": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "var": {
                                                                                    "description": "Specifies a variable to check.",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "operator": {
                                                                                    "description": "Specifies an operator.",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ],
                                                                                    "enum": [
                                                                                      "=",
                                                                                      "!=",
                                                                                      "<=",
                                                                                      ">=",
                                                                                      ">",
                                                                                      "<",
                                                                                      "in",
                                                                                      "not_in",
                                                                                      "~",
                                                                                      "~*",
                                                                                      "!~",
                                                                                      "!~*",
                                                                                      "ip_range",
                                                                                      "!ip_range",
                                                                                      "dn_mask",
                                                                                      "!dn_mask"
                                                                                    ]
                                                                                  },
                                                                                  "val": {
                                                                                    "description": "Specifies a value to check.",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "var",
                                                                                  "operator",
                                                                                  "val"
                                                                                ]
                                                                              }
                                                                            },
                                                                            "fields": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "key": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "val": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "key",
                                                                                  "val"
                                                                                ]
                                                                              }
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "name",
                                                                            "message"
                                                                          ]
                                                                        }
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "enabled"
                                                                    ],
                                                                    "allOf": [
                                                                      {
                                                                        "if": {
                                                                          "type": "object",
                                                                          "required": [
                                                                            "enabled"
                                                                          ],
                                                                          "properties": {
                                                                            "enabled": {
                                                                              "const": false
                                                                            }
                                                                          }
                                                                        },
                                                                        "then": {
                                                                          "required": []
                                                                        },
                                                                        "else": {
                                                                          "required": [
                                                                            "events"
                                                                          ]
                                                                        }
                                                                      }
                                                                    ]
                                                                  }
                                                                },
                                                                "required": [
                                                                  "action"
                                                                ]
                                                              }
                                                            },
                                                            "audit": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "enabled": {
                                                                  "type": "boolean"
                                                                },
                                                                "events": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "name": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "message": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "conditions": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "var": {
                                                                              "description": "Specifies a variable to check.",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "operator": {
                                                                              "description": "Specifies an operator.",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ],
                                                                              "enum": [
                                                                                "=",
                                                                                "!=",
                                                                                "<=",
                                                                                ">=",
                                                                                ">",
                                                                                "<",
                                                                                "in",
                                                                                "not_in",
                                                                                "~",
                                                                                "~*",
                                                                                "!~",
                                                                                "!~*",
                                                                                "ip_range",
                                                                                "!ip_range",
                                                                                "dn_mask",
                                                                                "!dn_mask"
                                                                              ]
                                                                            },
                                                                            "val": {
                                                                              "description": "Specifies a value to check.",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "var",
                                                                            "operator",
                                                                            "val"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "fields": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "key": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "val": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "key",
                                                                            "val"
                                                                          ]
                                                                        }
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "name",
                                                                      "message"
                                                                    ]
                                                                  }
                                                                }
                                                              },
                                                              "required": [
                                                                "enabled"
                                                              ],
                                                              "allOf": [
                                                                {
                                                                  "if": {
                                                                    "type": "object",
                                                                    "required": [
                                                                      "enabled"
                                                                    ],
                                                                    "properties": {
                                                                      "enabled": {
                                                                        "const": false
                                                                      }
                                                                    }
                                                                  },
                                                                  "then": {
                                                                    "required": []
                                                                  },
                                                                  "else": {
                                                                    "required": [
                                                                      "events"
                                                                    ]
                                                                  }
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": [
                                                            "action"
                                                          ]
                                                        }
                                                      },
                                                      "audit": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "enabled": {
                                                            "type": "boolean"
                                                          },
                                                          "events": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "name": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "message": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "conditions": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "var": {
                                                                        "description": "Specifies a variable to check.",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "operator": {
                                                                        "description": "Specifies an operator.",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ],
                                                                        "enum": [
                                                                          "=",
                                                                          "!=",
                                                                          "<=",
                                                                          ">=",
                                                                          ">",
                                                                          "<",
                                                                          "in",
                                                                          "not_in",
                                                                          "~",
                                                                          "~*",
                                                                          "!~",
                                                                          "!~*",
                                                                          "ip_range",
                                                                          "!ip_range",
                                                                          "dn_mask",
                                                                          "!dn_mask"
                                                                        ]
                                                                      },
                                                                      "val": {
                                                                        "description": "Specifies a value to check.",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "var",
                                                                      "operator",
                                                                      "val"
                                                                    ]
                                                                  }
                                                                },
                                                                "fields": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "key": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "val": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "key",
                                                                      "val"
                                                                    ]
                                                                  }
                                                                }
                                                              },
                                                              "required": [
                                                                "name",
                                                                "message"
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "enabled"
                                                        ],
                                                        "allOf": [
                                                          {
                                                            "if": {
                                                              "type": "object",
                                                              "required": [
                                                                "enabled"
                                                              ],
                                                              "properties": {
                                                                "enabled": {
                                                                  "const": false
                                                                }
                                                              }
                                                            },
                                                            "then": {
                                                              "required": []
                                                            },
                                                            "else": {
                                                              "required": [
                                                                "events"
                                                              ]
                                                            }
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "action"
                                                    ]
                                                  }
                                                },
                                                "audit": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "enabled": {
                                                      "type": "boolean"
                                                    },
                                                    "events": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "name": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "message": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "conditions": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "var": {
                                                                  "description": "Specifies a variable to check.",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "operator": {
                                                                  "description": "Specifies an operator.",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ],
                                                                  "enum": [
                                                                    "=",
                                                                    "!=",
                                                                    "<=",
                                                                    ">=",
                                                                    ">",
                                                                    "<",
                                                                    "in",
                                                                    "not_in",
                                                                    "~",
                                                                    "~*",
                                                                    "!~",
                                                                    "!~*",
                                                                    "ip_range",
                                                                    "!ip_range",
                                                                    "dn_mask",
                                                                    "!dn_mask"
                                                                  ]
                                                                },
                                                                "val": {
                                                                  "description": "Specifies a value to check.",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                }
                                                              },
                                                              "required": [
                                                                "var",
                                                                "operator",
                                                                "val"
                                                              ]
                                                            }
                                                          },
                                                          "fields": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "key": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "val": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                }
                                                              },
                                                              "required": [
                                                                "key",
                                                                "val"
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "name",
                                                          "message"
                                                        ]
                                                      }
                                                    }
                                                  },
                                                  "required": [
                                                    "enabled"
                                                  ],
                                                  "allOf": [
                                                    {
                                                      "if": {
                                                        "type": "object",
                                                        "required": [
                                                          "enabled"
                                                        ],
                                                        "properties": {
                                                          "enabled": {
                                                            "const": false
                                                          }
                                                        }
                                                      },
                                                      "then": {
                                                        "required": []
                                                      },
                                                      "else": {
                                                        "required": [
                                                          "events"
                                                        ]
                                                      }
                                                    }
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "action"
                                              ]
                                            }
                                          },
                                          "audit": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "enabled": {
                                                "type": "boolean"
                                              },
                                              "events": {
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "name": {
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "message": {
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "conditions": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "var": {
                                                            "description": "Specifies a variable to check.",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "operator": {
                                                            "description": "Specifies an operator.",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ],
                                                            "enum": [
                                                              "=",
                                                              "!=",
                                                              "<=",
                                                              ">=",
                                                              ">",
                                                              "<",
                                                              "in",
                                                              "not_in",
                                                              "~",
                                                              "~*",
                                                              "!~",
                                                              "!~*",
                                                              "ip_range",
                                                              "!ip_range",
                                                              "dn_mask",
                                                              "!dn_mask"
                                                            ]
                                                          },
                                                          "val": {
                                                            "description": "Specifies a value to check.",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "var",
                                                          "operator",
                                                          "val"
                                                        ]
                                                      }
                                                    },
                                                    "fields": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "key": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "val": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "key",
                                                          "val"
                                                        ]
                                                      }
                                                    }
                                                  },
                                                  "required": [
                                                    "name",
                                                    "message"
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "enabled"
                                            ],
                                            "allOf": [
                                              {
                                                "if": {
                                                  "type": "object",
                                                  "required": [
                                                    "enabled"
                                                  ],
                                                  "properties": {
                                                    "enabled": {
                                                      "const": false
                                                    }
                                                  }
                                                },
                                                "then": {
                                                  "required": []
                                                },
                                                "else": {
                                                  "required": [
                                                    "events"
                                                  ]
                                                }
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "action"
                                        ]
                                      }
                                    },
                                    "audit": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "enabled": {
                                          "type": "boolean"
                                        },
                                        "events": {
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "name": {
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              },
                                              "message": {
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              },
                                              "conditions": {
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "var": {
                                                      "description": "Specifies a variable to check.",
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "operator": {
                                                      "description": "Specifies an operator.",
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ],
                                                      "enum": [
                                                        "=",
                                                        "!=",
                                                        "<=",
                                                        ">=",
                                                        ">",
                                                        "<",
                                                        "in",
                                                        "not_in",
                                                        "~",
                                                        "~*",
                                                        "!~",
                                                        "!~*",
                                                        "ip_range",
                                                        "!ip_range",
                                                        "dn_mask",
                                                        "!dn_mask"
                                                      ]
                                                    },
                                                    "val": {
                                                      "description": "Specifies a value to check.",
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "var",
                                                    "operator",
                                                    "val"
                                                  ]
                                                }
                                              },
                                              "fields": {
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "key": {
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "val": {
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "key",
                                                    "val"
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "name",
                                              "message"
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "enabled"
                                      ],
                                      "allOf": [
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "enabled"
                                            ],
                                            "properties": {
                                              "enabled": {
                                                "const": false
                                              }
                                            }
                                          },
                                          "then": {
                                            "required": []
                                          },
                                          "else": {
                                            "required": [
                                              "events"
                                            ]
                                          }
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "action"
                                  ]
                                }
                              },
                              "audit": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "enabled": {
                                    "type": "boolean"
                                  },
                                  "events": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "name": {
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "message": {
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "conditions": {
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "var": {
                                                "description": "Specifies a variable to check.",
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              },
                                              "operator": {
                                                "description": "Specifies an operator.",
                                                "type": [
                                                  "number",
                                                  "string"
                                                ],
                                                "enum": [
                                                  "=",
                                                  "!=",
                                                  "<=",
                                                  ">=",
                                                  ">",
                                                  "<",
                                                  "in",
                                                  "not_in",
                                                  "~",
                                                  "~*",
                                                  "!~",
                                                  "!~*",
                                                  "ip_range",
                                                  "!ip_range",
                                                  "dn_mask",
                                                  "!dn_mask"
                                                ]
                                              },
                                              "val": {
                                                "description": "Specifies a value to check.",
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "var",
                                              "operator",
                                              "val"
                                            ]
                                          }
                                        },
                                        "fields": {
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "key": {
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              },
                                              "val": {
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "key",
                                              "val"
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "name",
                                        "message"
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "enabled"
                                ],
                                "allOf": [
                                  {
                                    "if": {
                                      "type": "object",
                                      "required": [
                                        "enabled"
                                      ],
                                      "properties": {
                                        "enabled": {
                                          "const": false
                                        }
                                      }
                                    },
                                    "then": {
                                      "required": []
                                    },
                                    "else": {
                                      "required": [
                                        "events"
                                      ]
                                    }
                                  }
                                ]
                              }
                            },
                            "required": [
                              "action"
                            ]
                          }
                        },
                        "audit": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "enabled": {
                              "type": "boolean"
                            },
                            "events": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "name": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "message": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "conditions": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "var": {
                                          "description": "Specifies a variable to check.",
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "operator": {
                                          "description": "Specifies an operator.",
                                          "type": [
                                            "number",
                                            "string"
                                          ],
                                          "enum": [
                                            "=",
                                            "!=",
                                            "<=",
                                            ">=",
                                            ">",
                                            "<",
                                            "in",
                                            "not_in",
                                            "~",
                                            "~*",
                                            "!~",
                                            "!~*",
                                            "ip_range",
                                            "!ip_range",
                                            "dn_mask",
                                            "!dn_mask"
                                          ]
                                        },
                                        "val": {
                                          "description": "Specifies a value to check.",
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "var",
                                        "operator",
                                        "val"
                                      ]
                                    }
                                  },
                                  "fields": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "key": {
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "val": {
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "key",
                                        "val"
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "name",
                                  "message"
                                ]
                              }
                            }
                          },
                          "required": [
                            "enabled"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "enabled"
                                ],
                                "properties": {
                                  "enabled": {
                                    "const": false
                                  }
                                }
                              },
                              "then": {
                                "required": []
                              },
                              "else": {
                                "required": [
                                  "events"
                                ]
                              }
                            }
                          ]
                        }
                      },
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              ".."
                            ],
                            "properties": {
                              "..": {
                                "properties": {
                                  "..": {
                                    "type": "object",
                                    "required": [
                                      ".."
                                    ],
                                    "properties": {
                                      "..": {
                                        "type": "object",
                                        "required": [
                                          "server_streaming"
                                        ],
                                        "properties": {
                                          "server_streaming": {
                                            "pattern": ".+"
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "streaming"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  },
                  "response_chain_properties": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "error_state_code": {
                        "type": "integer"
                      },
                      "failed_check_state_code": {
                        "type": "integer"
                      },
                      "max_buffer_size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "max_inmemory_size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "skip_on_error_stage_before": {
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "use_post_processor": {
                        "type": "boolean"
                      },
                      "resp_gen_modify": {
                        "description": "Add possibility to override backend response",
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "trace_config": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enableAllActions": {
                            "description": "enable tracing of all actions in chains",
                            "type": "boolean"
                          },
                          "enableAllChains": {
                            "description": "enable tracing of all actions in child chains",
                            "type": "boolean"
                          },
                          "mode": {
                            "description": "Enable or disable tracing at this level.",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "enabled": {
                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "on",
                                  "off",
                                  "var_based"
                                ]
                              },
                              "var": {
                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            }
                          },
                          "spanAttributes": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "description": "name of attribute",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "value": {
                                  "description": "value of attribute, can contain variables",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                }
                              }
                            }
                          },
                          "spanName": {
                            "description": "Specify name of span",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "enableSocketsTracing": {
                            "description": "Enable or disable socket tracing, by default enabled",
                            "type": "boolean"
                          }
                        }
                      },
                      "requiredActionOneOf": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "decisionType": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "WARN",
                              "BLOCK"
                            ]
                          },
                          "action": {
                            "type": "array",
                            "items": {
                              "type": [
                                "number",
                                "string"
                              ]
                            }
                          }
                        }
                      }
                    }
                  },
                  "message_error_processor": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "proto_config": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "type": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "proto_file"
                            ]
                          },
                          "generate": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "data"
                            ]
                          },
                          "path": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                          },
                          "class": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "message": {
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        },
                        "required": [
                          "type",
                          "path",
                          "message"
                        ]
                      },
                      "pattern_file": {
                        "description": "Specifies rule file which describes how to fill pattern file.",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "rules_file": {
                        "description": "Specifies rule file which describes how to fill pattern file. Default - rules file from system resources.",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      }
                    }
                  }
                },
                "allOf": [
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "request_chains"
                      ],
                      "properties": {
                        "request_chains": {
                          "pattern": ".+"
                        }
                      }
                    },
                    "else": {
                      "not": {
                        "required": [
                          "request_chain_properties"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "response_chains"
                      ],
                      "properties": {
                        "response_chains": {
                          "pattern": ".+"
                        }
                      }
                    },
                    "else": {
                      "not": {
                        "required": [
                          "response_chain_properties"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        ".."
                      ],
                      "properties": {
                        "..": {
                          "properties": {
                            "..": {
                              "type": "object",
                              "required": [
                                "server_streaming"
                              ],
                              "properties": {
                                "server_streaming": {
                                  "pattern": ".+"
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "else": {
                      "not": {
                        "required": [
                          "message_error_processor"
                        ]
                      }
                    }
                  }
                ]
              },
              "server_streaming": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "stream_type": {
                    "type": [
                      "number",
                      "string"
                    ],
                    "enum": [
                      "SSE",
                      "JSON_LINES",
                      "PROTOBUF_HTTP",
                      "GRPC"
                    ]
                  },
                  "message_delimiter": {
                    "type": [
                      "number",
                      "string"
                    ],
                    "enum": [
                      "LF",
                      "DOUBLE_LF",
                      "CRLF",
                      "DOUBLE_CRLF",
                      "NONE",
                      "AUTO"
                    ]
                  },
                  "dont_chunk_response": {
                    "description": "Disable chunked transfer-encoding in client response",
                    "type": "boolean"
                  },
                  "parser_enable_condition": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "var": {
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "val": {
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "operator": {
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "=",
                            "!=",
                            "<=",
                            ">=",
                            ">",
                            "<",
                            "in",
                            "not_in",
                            "~",
                            "~*",
                            "!~",
                            "!~*",
                            "ip_range",
                            "!ip_range",
                            "dn_mask",
                            "!dn_mask"
                          ]
                        }
                      },
                      "required": [
                        "var",
                        "val",
                        "operator"
                      ]
                    }
                  }
                }
              }
            },
            "required": [
              "id",
              "url"
            ],
            "allOf": [
              {
                "if": {
                  "type": "object",
                  "required": [
                    "optional"
                  ],
                  "properties": {
                    "optional": {
                      "type": "object",
                      "required": [
                        "event_hook"
                      ],
                      "properties": {
                        "event_hook": {
                          "pattern": ".+"
                        }
                      }
                    }
                  }
                },
                "then": {
                  "required": [
                    "name"
                  ]
                }
              },
              {
                "if": {
                  "type": "object",
                  "required": [
                    "chains"
                  ],
                  "properties": {
                    "chains": {}
                  }
                },
                "then": {
                  "not": {
                    "required": [
                      "validators"
                    ]
                  }
                }
              }
            ]
          }
        },
        "service_web_socket_proxy": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": [
                  "number",
                  "string"
                ],
                "pattern": "^[^.\\/\\\\()]+$"
              },
              "name": {
                "description": "Human readable Service identifier printed in log messages",
                "type": [
                  "number",
                  "string"
                ]
              },
              "profile_version": {
                "description": "Specifies profile version of this service",
                "type": [
                  "number",
                  "string"
                ]
              },
              "description": {
                "type": [
                  "number",
                  "string"
                ]
              },
              "listen": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "address": {
                      "description": "specifies ip/hostname on which the socket will listen.",
                      "type": [
                        "number",
                        "string"
                      ]
                    },
                    "port": {
                      "description": "specifies port on which the socket will listen",
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 65535
                    },
                    "allow_http2": {
                      "description": "Allow to accept http2 connection. Default - false",
                      "type": "boolean"
                    },
                    "proxy_protocol": {
                      "description": "Accept proxy protocol. Http requests will not be handler with this flag. Default - false",
                      "type": "boolean"
                    },
                    "http2_only": {
                      "description": "Allow to pass only http2 protocol connection. Default - off",
                      "type": "string",
                      "enum": [
                        "on",
                        "off"
                      ]
                    },
                    "ssl": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "sspi": {
                          "description": "Enables GOST TLS mode. Default id false.",
                          "type": "boolean"
                        },
                        "client_verify_local_crl_only": {
                          "description": "GOST mode. Specifies whether to check the certificate status locally (otherwise check online). Default is \"off\" (online check).",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "buffer_size": {
                          "description": "GOST mode. Specifies payload length in TLS record (min 1024, max 16384). Default is 16384 bytes.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^([0-9]+[kK]{1})|([0-9]+)$"
                        },
                        "certificate": {
                          "description": "specifies name of the certificate wich will be used. Certificate must be placed in \"resource\" directory.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "certificate_key": {
                          "description": "specifies name of the certificate key wich will be used. Certificate key must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "password_file": {
                          "description": "specifies name of the password file with secret keys for \"certificate_key\". Password file must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "client_certificate": {
                          "description": "specifies name of the client certificate wich will be used. Client Certificate must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_client": {
                          "description": "Enables verification of client certificates. Default - no",
                          "type": "string"
                        },
                        "ocsp": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "enabled": {
                              "description": "Enables OCSP validation of the client certificate chain",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "depth": {
                              "description": "Specify depth of certificate validation.",
                              "type": "integer",
                              "minimum": 1
                            },
                            "mode": {
                              "description": "Specify mode. In strict mode request will be blocked in case unsuccessfull certiticate checking, in flexible mode - request will not be blocked. Strict by default.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "strict",
                                "flexible"
                              ]
                            },
                            "cache": {
                              "description": "Sets name and size of the cache that stores client certificates status for OCSP validation. The cache is shared between all worker processes",
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "size": {
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                },
                                "lifetime": {
                                  "description": "Specifies cache lifetime. 3600 seconds by default",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                                }
                              },
                              "required": [
                                "name",
                                "size"
                              ]
                            },
                            "use_cert_responder": {
                              "description": "Defines use or not responder from certificate(if specified). False by default",
                              "type": "boolean"
                            },
                            "responder_timeout": {
                              "description": "Specifies responder timeout. 60000 milliseconds by default",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                            },
                            "responders": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "regex;(.+)": {
                                  "type": "array",
                                  "uniqueItems": true,
                                  "items": {
                                    "description": "Specifies the URL of the OCSP responder specified in the “Authority Information Access” certificate extension for validation of client certificates. Only http:// OCSP responders are supported",
                                    "type": [
                                      "number",
                                      "string"
                                    ],
                                    "pattern": "^(?:http:\\/\\/).+$"
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "enabled",
                            "depth"
                          ]
                        },
                        "verify_dn_trusted_path": {
                          "description": "Turn on verification of client dn. Use this file to match all regex dn from this file with dn of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_client_error_code": {
                          "description": "Defines the response code if verification client certificate failed. Default value is \"495\"(400)",
                          "type": "integer"
                        },
                        "verify_fingerprint_trusted_path": {
                          "description": "Turn on verification of client fingerprint. Use this file to match all fingerprints from file with fingerprint of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_depth": {
                          "description": "Sets the verification depth in the client certificates chain. Default - 1",
                          "type": "integer"
                        },
                        "protocols": {
                          "description": "specifies used ciphers. The default value is \"LSv1 TLSv1.1 TLSv1.2\" for RSA, and \"TLSv1\" for GOST",
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string"
                          }
                        },
                        "ciphers": {
                          "description": "specifies group of ciphes. The default value is \"HIGH:!aNULL:!MD5\".",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "prefix": {
                                "type": "string",
                                "enum": [
                                  "!",
                                  "+",
                                  "-"
                                ]
                              },
                              "value": {
                                "type": "array",
                                "uniqueItems": true,
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "DEFAULT",
                                    "COMPLEMENTOFDEFAULT",
                                    "ALL",
                                    "COMPLEMENTOFALL",
                                    "HIGH",
                                    "MEDIUM",
                                    "LOW",
                                    "EXP",
                                    "EXPORT",
                                    "EXPORT40",
                                    "EXPORT56",
                                    "eNULL",
                                    "NULL",
                                    "aNULL",
                                    "kRSA",
                                    "RSA",
                                    "kDHr",
                                    "kDHd",
                                    "kDH",
                                    "kDHE",
                                    "kEDH",
                                    "DHE",
                                    "EDH",
                                    "ADH",
                                    "DH",
                                    "kECDHr",
                                    "kECDHe",
                                    "kECDH",
                                    "kECDHE",
                                    "kEECDH",
                                    "ECDHE",
                                    "EECDH",
                                    "AECDH",
                                    "ECDH",
                                    "aRSA",
                                    "aDSS",
                                    "DSS",
                                    "aDH",
                                    "aECDH",
                                    "aECDSA",
                                    "ECDSA",
                                    "kFZA",
                                    "aFZA",
                                    "eFZA",
                                    "FZA",
                                    "TLSv1.2",
                                    "TLSv1",
                                    "SSLv3",
                                    "SSLv2",
                                    "AES128",
                                    "AES256",
                                    "AES",
                                    "AESGCM",
                                    "CAMELLIA128",
                                    "CAMELLIA256",
                                    "CAMELLIA",
                                    "3DES",
                                    "DES",
                                    "RC4",
                                    "RC2",
                                    "IDEA",
                                    "SEED",
                                    "MD5",
                                    "SHA1",
                                    "SHA",
                                    "SHA256",
                                    "SHA384",
                                    "aGOST",
                                    "aGOST01",
                                    "aGOST94",
                                    "kGOST",
                                    "GOST94",
                                    "GOST89MAC",
                                    "PSK",
                                    "SUITEB128",
                                    "SUITEB128ONLY",
                                    "SUITEB192",
                                    "@STRENGTH",
                                    "NULL-SHA256"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "value"
                            ]
                          }
                        },
                        "ciphers_str": {
                          "description": "specifies string of ciphers.",
                          "type": "string"
                        },
                        "dhparam": {
                          "description": "Specifies a file with DH parameters for DHE ciphers and enable usage of DHE ciphers.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "session_timeout": {
                          "description": "specifies timeout of the ssl session. The default value is \"10m\"",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                        },
                        "session_cache": {
                          "description": "specifies cache size for ssl session. The default value evaluates automatically.",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "off",
                                "none",
                                "builtin",
                                "shared"
                              ]
                            },
                            "name": {
                              "type": "string"
                            },
                            "size": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "reject_handshake": {
                          "description": "specifies whether reject all SSL handshake with a different server name (strict SNI check). Default is false.",
                          "type": "boolean"
                        },
                        "stapling": {
                          "description": "enables or disables stapling of OCSP responses by the server. Default - false.",
                          "type": "boolean"
                        },
                        "stapling_file": {
                          "description": "when set, the stapled OCSP response will be taken from the specified file instead of querying the OCSP responder specified in the server certificate.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "stapling_responder": {
                          "description": "overrides the URL of the OCSP responder specified in the “Authority Information Access” certificate extension.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "stapling_verify": {
                          "description": "enables or disables verification of OCSP responses by the server. For verification to work, the certificate of the server certificate issuer, the root certificate, and all intermediate certificates should be configured as trusted using the trusted_certificate directive. Default - false.",
                          "type": "boolean"
                        },
                        "trusted_certificate": {
                          "description": "specifies a file with trusted CA certificates in the PEM format used to verify client certificates and OCSP responses if stapling is enabled.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        }
                      },
                      "required": [
                        "certificate"
                      ],
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling_verify"
                            ],
                            "properties": {
                              "stapling_verify": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "then": {
                            "required": [
                              "trusted_certificate"
                            ]
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "verify_dn_trusted_path"
                            ],
                            "properties": {
                              "verify_dn_trusted_path": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "verify_client_error_code"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "verify_fingerprint_trusted_path"
                            ],
                            "properties": {
                              "verify_fingerprint_trusted_path": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "verify_client_error_code"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "ciphers_str"
                            ],
                            "properties": {
                              "ciphers_str": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "ciphers"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "ciphers"
                            ],
                            "properties": {
                              "ciphers": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "ciphers_str"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "certificate"
                            ],
                            "properties": {
                              "certificate": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_file"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_responder"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_verify"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling_verify"
                            ],
                            "properties": {
                              "stapling_verify": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "trusted_certificate"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              },
              "hostname": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "url": {
                "description": "Defines the relative URL by which the service will work.",
                "type": "string"
              },
              "use_main_upstream_groups": {
                "description": "Defines whether to use upstream groups from main proxy.",
                "type": "boolean"
              },
              "upstream_group_id": {
                "description": "Specifies ID of the upstream group.",
                "type": [
                  "number",
                  "string"
                ]
              },
              "upstream_bind_variable": {
                "description": "Specifies a variable that is used to bind upstream group along with \"bind_condition\".",
                "type": "string"
              },
              "upstream_groups": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "description": "Specifies the unique id for the upstream group.",
                      "type": [
                        "number",
                        "string"
                      ],
                      "pattern": "^[^.\\/\\\\()-]+$"
                    },
                    "ssl": {
                      "description": "Specifies the type of connection - http or https. The default value is \"http\"",
                      "type": "boolean"
                    },
                    "rewrite_uri": {
                      "description": "Allows you to replace the URL which is going to the backend.",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "from": {
                            "description": "Specify a regular expression that matches the URI.",
                            "type": "string"
                          },
                          "to": {
                            "description": "Specify string to replace URI that matches regular expression in parameter \"from\". You can use substitutions (like this $1, $2, etc.) according your regular expression.",
                            "type": "string"
                          }
                        },
                        "required": [
                          "from",
                          "to"
                        ]
                      }
                    },
                    "bind_context": {
                      "description": "Specifies bind context condition pattern. Used when \"use_upstream_groups=True\" in main proxy service.",
                      "type": "string",
                      "pattern": "^\\^.*\\$$"
                    },
                    "bind_condition": {
                      "description": "Specifies a variable value that will be used as bind condition for this upstream group. If you use this parameter and you have several upstream groups, then one of them should be declared as default.",
                      "type": "string"
                    },
                    "default": {
                      "description": "Specifies that this upstream group is default. Used along with bind_condition.",
                      "type": "boolean"
                    },
                    "zone": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "description": "Define the name of upstream zone",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "size": {
                          "description": "Define the size of upstream zone. Default 1m",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                        }
                      },
                      "required": [
                        "name"
                      ]
                    },
                    "keepalive_conn_count": {
                      "description": "Defines maximum count of keepalive connections to upstream group per worker process.",
                      "type": "integer"
                    },
                    "keepalive_requests": {
                      "description": "Defines maximum count of requests per connection. 100 by default.",
                      "type": "integer"
                    },
                    "keepalive_timeout": {
                      "description": "Defines a timeout during which a connection will stay open. The default value is \"60s\".",
                      "type": [
                        "number",
                        "string"
                      ],
                      "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                    },
                    "health_check": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "enabled": {
                          "description": "Enable health_check module",
                          "type": "boolean"
                        },
                        "check_interval": {
                          "description": "Specifies check request's interval time in milliseconds.",
                          "type": "integer"
                        },
                        "check_interval_down": {
                          "description": "Specifies check request's interval time if peer is down.",
                          "type": "integer"
                        },
                        "fail_count": {
                          "description": "Specifies number of failed requests to mark server as down.",
                          "type": "integer"
                        },
                        "rise_count": {
                          "description": "Specifies number of successful requests to mark server as down.",
                          "type": "integer"
                        },
                        "drain": {
                          "description": "Specifies number of failed requests to mark server as drain.",
                          "type": "integer"
                        },
                        "timeout": {
                          "description": "Specifies check request's timeout.",
                          "type": "integer"
                        },
                        "default_state": {
                          "description": "Specifies default server state.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "up",
                            "down"
                          ]
                        },
                        "port": {
                          "description": "Specifies port to send check requests.",
                          "type": "integer"
                        },
                        "type": {
                          "description": "Specifies check request type.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "tcp",
                            "ssl_hello",
                            "http",
                            "mysql",
                            "ajp",
                            "fastcgi"
                          ]
                        },
                        "http_send_method": {
                          "description": "Specifies http method, default POST if http_send_req is defined, GET otherwise",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "GET",
                            "POST"
                          ]
                        },
                        "http_send_url": {
                          "description": "Specifies url for health check, default \"/\"",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^\\/.*$"
                        },
                        "http_send_version": {
                          "description": "Specifies http version, default 1.0",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            1.0,
                            1.1,
                            2.0
                          ]
                        },
                        "http_send_headers": {
                          "description": "Specifies request header line. For example 'X-MyHeader foo'.",
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "http_send_req": {
                          "description": "Specifies request body. (Deprecated - Specifies which req to send when check type is http)",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "fastcgi_param": {
                          "description": "Specifies which headers to send with fastcgi req",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "http_status_alive": {
                          "description": "Specifies which response code is ok",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "check_shm_size": {
                          "description": "Specifies shared memory size for checking large groups of servers",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "check_response_body": {
                          "description": "case insensitive search in resp body",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "check_response_body_pattern": {
                          "description": "case insensitive search in resp body by pattern",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "check_response_body_drain": {
                          "description": "case insensitive search in resp body",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "check_response_body_drain_pattern": {
                          "description": "case insensitive search in resp body by pattern",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "check_keepalive_req": {
                          "description": "Specifies the number of requests sent on a connection",
                          "type": "integer"
                        },
                        "check_status_type": {
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "html",
                            "csv",
                            "json"
                          ]
                        },
                        "ssl_options": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "ssl_use": {
                              "description": "Enables SSL. Default is 'off'.",
                              "type": "boolean"
                            },
                            "sspi": {
                              "description": "Enables GOST TLS mode. Default id false.",
                              "type": "boolean"
                            },
                            "ssl_verify_local_crl_only": {
                              "description": "GOST mode. Specifies whether to check the certificate status locally (otherwise check online). Default is \"off\" (online check).",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "ssl_verify_ignore_cn": {
                              "description": "GOST mode. Specifies whether to skip CN check. Default is \"off\" (do not skip).",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "ssl_session_reuse": {
                              "description": "Determines whether SSL sessions can be reused when working with the proxied server. Default is 'on'.",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "ssl_protocols": {
                              "description": "Enables the specified protocols for requests to a proxied HTTPS server. The default value is \"TLSv1 TLSv1.1 TLSv1.2\"",
                              "type": "array",
                              "uniqueItems": true,
                              "items": {
                                "type": "string",
                                "enum": [
                                  "SSLv2",
                                  "SSLv3",
                                  "TLSv1",
                                  "TLSv1.1",
                                  "TLSv1.2",
                                  "TLSv1.3"
                                ]
                              }
                            },
                            "ssl_ciphers": {
                              "description": "Specifies the enabled ciphers for requests to a proxied HTTPS server. The default value is \"HIGH:!aNULL:!MD5\".",
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "prefix": {
                                    "type": "string",
                                    "enum": [
                                      "!",
                                      "+",
                                      "-"
                                    ]
                                  },
                                  "value": {
                                    "type": "array",
                                    "uniqueItems": true,
                                    "items": {
                                      "type": "string",
                                      "enum": [
                                        "DEFAULT",
                                        "COMPLEMENTOFDEFAULT",
                                        "ALL",
                                        "COMPLEMENTOFALL",
                                        "HIGH",
                                        "MEDIUM",
                                        "LOW",
                                        "EXP",
                                        "EXPORT",
                                        "EXPORT40",
                                        "EXPORT56",
                                        "eNULL",
                                        "NULL",
                                        "aNULL",
                                        "kRSA",
                                        "RSA",
                                        "kDHr",
                                        "kDHd",
                                        "kDH",
                                        "kDHE",
                                        "kEDH",
                                        "DHE",
                                        "EDH",
                                        "ADH",
                                        "DH",
                                        "kECDHr",
                                        "kECDHe",
                                        "kECDH",
                                        "kECDHE",
                                        "kEECDH",
                                        "ECDHE",
                                        "EECDH",
                                        "AECDH",
                                        "ECDH",
                                        "aRSA",
                                        "aDSS",
                                        "DSS",
                                        "aDH",
                                        "aECDH",
                                        "aECDSA",
                                        "ECDSA",
                                        "kFZA",
                                        "aFZA",
                                        "eFZA",
                                        "FZA",
                                        "TLSv1.2",
                                        "TLSv1",
                                        "SSLv3",
                                        "SSLv2",
                                        "AES128",
                                        "AES256",
                                        "AES",
                                        "AESGCM",
                                        "CAMELLIA128",
                                        "CAMELLIA256",
                                        "CAMELLIA",
                                        "3DES",
                                        "DES",
                                        "RC4",
                                        "RC2",
                                        "IDEA",
                                        "SEED",
                                        "MD5",
                                        "SHA1",
                                        "SHA",
                                        "SHA256",
                                        "SHA384",
                                        "aGOST",
                                        "aGOST01",
                                        "aGOST94",
                                        "kGOST",
                                        "GOST94",
                                        "GOST89MAC",
                                        "PSK",
                                        "SUITEB128",
                                        "SUITEB128ONLY",
                                        "SUITEB192",
                                        "@STRENGTH",
                                        "NULL-SHA256"
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "value"
                                ]
                              }
                            },
                            "ssl_ciphers_str": {
                              "description": "Specifies the string of enabled ciphers for requests to a proxied HTTPS server.",
                              "type": "string"
                            },
                            "ssl_name": {
                              "description": "Allows overriding the server name used to verify the certificate of the proxied HTTPS server and to be passed through SNI when establishing a connection with the proxied HTTPS server. There is no default value.",
                              "type": "string"
                            },
                            "ssl_name_upstream_host": {
                              "description": "Enables using upstream host to verify the certificate of the proxied HTTPS server when ssl_name isn't specified. Default \"on\".",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "ssl_name_verify_off": {
                              "description": "Enable or disable ssl_name verifying",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "ssl_server_name": {
                              "description": "Enables or disables passing of the server name through TLS Server Name Indication extension (SNI, RFC 6066) when establishing a connection with the proxied HTTPS server. Default is \"off\".",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "ssl_verify": {
                              "description": "Enables or disables verification of the proxied HTTPS server certificate. Default is \"off\"",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "ssl_verify_depth": {
                              "description": "Sets the verification depth in the proxied HTTPS server certificates chain. Default is \"1\".",
                              "type": "integer",
                              "minimum": 0
                            },
                            "ssl_trusted_certificate": {
                              "description": "Specifies a file with trusted CA certificates in the PEM format used to verify the certificate of the proxied HTTPS server. There is no default value.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "ssl_dn_verify_trusted_path": {
                              "description": "Specifies the file with allowed regex of client certificate dn",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "ssl_fingerprint_verify_trusted_path": {
                              "description": "Specifies the file with allowed regex of client certificate dn",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "ssl_verify_error_code": {
                              "description": "Defines the response code if verification upstream certificate failed.",
                              "type": "integer"
                            },
                            "ssl_crl": {
                              "description": "Specifies a file with revoked certificates (CRL) in the PEM format used to verify the certificate of the proxied HTTPS server. There is no default value.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "ssl_certificate": {
                              "description": "Specifies a file with the certificate in the PEM format used for authentication to a proxied HTTPS server. There is no default value.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "ssl_certificate_key": {
                              "description": "Specifies a file with the secret key in the PEM format used for authentication to a proxied HTTPS server. There is no default value.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "ssl_password_file": {
                              "description": "Specifies a file with passphrases for secret keys where each passphrase is specified on a separate line. There is no default value.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            }
                          },
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_session_reuse"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_protocols"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_server_name"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_verify"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_verify_depth"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_dn_verify_trusted_path"
                                ],
                                "properties": {
                                  "ssl_dn_verify_trusted_path": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_verify_error_code"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_fingerprint_verify_trusted_path"
                                ],
                                "properties": {
                                  "ssl_fingerprint_verify_trusted_path": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_verify_error_code"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_crl"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_certificate"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_certificate_key"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_password_file"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      },
                      "required": [
                        "enabled"
                      ]
                    },
                    "load_balancing": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "type": {
                          "description": "Specifies a load balancing type",
                          "type": "string",
                          "enum": [
                            "hash",
                            "ip_hash",
                            "sticky",
                            "persistence",
                            "least_conn",
                            "random"
                          ]
                        },
                        "random_two": {
                          "description": "Selects only two servers by their weights before using least connections balancing.",
                          "type": "boolean"
                        },
                        "hash_consistent": {
                          "description": "If the consistent parameter is specified the ketama consistent hashing method will be used instead",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "hash_key": {
                          "description": "The client-server mapping is based on the hashed key value",
                          "type": "string"
                        },
                        "name": {
                          "description": "The name of the cookies used to track the persistant upstream srv. The default value is route",
                          "type": "string"
                        },
                        "domain": {
                          "description": "The domain in which the cookie will be valid. By default browser handle this.",
                          "type": "string"
                        },
                        "path": {
                          "description": "The path in which the cookie will be valid. By default browser handle this.",
                          "type": "string"
                        },
                        "expires": {
                          "description": "The validity duration of the cookie. By default it's a session cookie",
                          "type": "string",
                          "pattern": "^([0-9]+[smhdwMy]{1})$"
                        },
                        "hash": {
                          "description": "The hash mechanism to encode upstream server. It can't be used with hmac. Default value is md5",
                          "type": "string",
                          "enum": [
                            "md5",
                            "sha1",
                            "index"
                          ]
                        },
                        "hmac": {
                          "description": "the HMAC hash mechanism to encode upstream server. It's like the hash mechanism but it uses hmac_key to secure the hashing. It can't be used with hash.",
                          "type": "string",
                          "enum": [
                            "md5",
                            "sha1"
                          ]
                        },
                        "hmac_key": {
                          "description": "the key to use with hmac. It's mandatory when hmac is set",
                          "type": "string"
                        },
                        "no_fallback": {
                          "description": "when this flag is set, nginx will return a 502 (Bad Gateway or Proxy Error) if a request comes with a cookie and the corresponding backend is unavailable",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "secure": {
                          "description": "Enable secure cookies. Transferred only via https. The default value is false",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "httponly": {
                          "description": "Enable cookies not to be leaked via js. The default value is false",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "persistence_type": {
                          "description": "Specifies persistence type.",
                          "type": "string",
                          "enum": [
                            "insert_cookie",
                            "session_based"
                          ]
                        },
                        "monitor_cookie": {
                          "type": "string"
                        },
                        "always_use_sticky": {
                          "type": "boolean"
                        },
                        "timeout": {
                          "description": "Specifies cookie expire time.",
                          "type": "integer"
                        },
                        "reset_uri": {
                          "description": "Requesting this uri will result in resetting session cookie.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^\\/.*$"
                        },
                        "reset_uri_pattern": {
                          "description": "Requesting uri which corresponds this regex pattern will result in resetting session cookie.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "reset_cookie": {
                          "description": "If active and monitor_cookie is not in request, session cookie will be reset. Default is \"False\".",
                          "type": "boolean"
                        },
                        "max_age": {
                          "description": "Sets Max-Age flag for sticky session cookie. Number of seconds until the cookie expires. A zero or negative number will expire the cookie immediately.",
                          "type": "integer"
                        },
                        "tail": {
                          "description": "Specifies cookie tail. Search value for specified key within response headers by default. Possible to specify variables also.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "tail_delimiter": {
                          "description": "Specifies cookie tail delimiter. Allowed only one character.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^.{1}$"
                        }
                      },
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "tail"
                            ],
                            "properties": {
                              "tail": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "then": {
                            "required": [
                              "tail_delimiter"
                            ]
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "tail"
                            ],
                            "properties": {
                              "tail": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "tail_delimiter"
                              ]
                            }
                          }
                        }
                      ]
                    },
                    "servers": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "service_id": {
                            "description": "specifies service id",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "service_type": {
                            "description": "specifies service type",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "server": {
                            "description": "specifies server name or IP address with port. The default port is 80.",
                            "type": "string"
                          },
                          "weight": {
                            "description": "specifies weight of the server. The default value is \"1\".",
                            "type": "integer"
                          },
                          "max_conns": {
                            "description": "specifies the maximum number of the concurrent connections to the upstream. The default value is \"0\" that means there are no limits.",
                            "type": "integer"
                          },
                          "max_fails": {
                            "description": "specifies the maximum number of failures during the \"fail_timeout\" after which this server will be marked as unreachable. The default value is \"1\".",
                            "type": "integer"
                          },
                          "fail_timeout": {
                            "description": "specifies the time during which failures should occur after which this server will be marked as unreachable. The default value is \"10s\".",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                          },
                          "backup": {
                            "description": "marks this server as a backup. If all basic servers are unavailable all request will be redirected to this one.",
                            "type": "boolean"
                          },
                          "slow_start": {
                            "description": "Sets the time during which the server will recover its weight from zero to a nominal value, when unhealthy server becomes healthy. Applicable when more than one peer is specified.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^[0-9]+[smhdwMy]{1}$"
                          },
                          "hash": {
                            "description": "Specifies a hash that will be associated with node during sticky balancing choice",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "enable_dp_hash": {
                            "description": "Enables generating hash from \"IP:port\" by internal DP algorithm",
                            "type": "boolean"
                          }
                        },
                        "allOf": [
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "server"
                              ],
                              "properties": {
                                "server": {}
                              }
                            },
                            "else": {
                              "required": [
                                "service_id"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "service_id"
                              ],
                              "properties": {
                                "service_id": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "service_type"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "service_id"
                              ],
                              "properties": {
                                "service_id": {}
                              }
                            },
                            "else": {
                              "required": [
                                "server"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "server"
                              ],
                              "properties": {
                                "server": {}
                              }
                            },
                            "then": {
                              "not": {
                                "required": [
                                  "service_id"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "service_id"
                              ],
                              "properties": {
                                "service_id": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "service_type"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "service_id"
                              ],
                              "properties": {
                                "service_id": {}
                              }
                            },
                            "then": {
                              "not": {
                                "required": [
                                  "server"
                                ]
                              }
                            }
                          }
                        ]
                      }
                    }
                  },
                  "required": [
                    "id",
                    "servers"
                  ],
                  "allOf": [
                    {
                      "if": {
                        "type": "object",
                        "required": [
                          "bind_condition"
                        ],
                        "properties": {
                          "bind_condition": {
                            "pattern": ".+"
                          }
                        }
                      },
                      "else": {
                        "not": {
                          "required": [
                            "default"
                          ]
                        }
                      }
                    }
                  ]
                }
              },
              "optional": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "log_level": {
                    "type": [
                      "number",
                      "string"
                    ],
                    "enum": [
                      "debug",
                      "info",
                      "notice",
                      "warn",
                      "error",
                      "crit",
                      "alert",
                      "off"
                    ]
                  },
                  "group_access_log": {
                    "description": "Specifies whether group or not the access log by status codes (2xx, 3xx, 4xx, 5xx, 404, 413, 429, 499, 500). Default is false.",
                    "type": "boolean"
                  },
                  "log_format": {
                    "description": "Specifies which format to use.",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "keepalive_timeout": {
                    "description": "Defines a timeout duaring which a connection will stay open. The default value is \"1h\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "keepalive_time": {
                    "description": "Limits the maximum time during which requests can be processed through one keep-alive connection. After this time is reached, the connection is closed following the subsequent request processing. By default -  timeout 1h",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "keepalive_requests": {
                    "description": "Sets the maximum number of request that can be served through keepalive session. The default value is \"9999999\".",
                    "type": "integer"
                  },
                  "proxy_read_timeout": {
                    "description": "Defines a timeout for reading a response from the proxied server. The default value is \"1d\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "proxy_send_timeout": {
                    "description": "Sets a timeout for transmitting a request to the proxied server. The default value is \"1d\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "proxy_connect_timeout": {
                    "description": "Sets the timeout to connect to the upstream service. The default value is \"20\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "upstream_rcv_buffer_size": {
                    "description": "Sets receive buffer size from the upstrream service. The default value is \"4k\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "downstream_rcv_buffer_size": {
                    "description": "Sets receive buffer size from the client. The default value is \"4k\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "upstream_send_buffer_size": {
                    "description": "Sets send buffer size from the client to the upstream. The default value is \"4k\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "downstream_send_buffer_size": {
                    "description": "Sets send buffer size from the upstream to the client. The default value is \"4k\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "send_downstream_no_delay": {
                    "description": "Defines whether to wait the end of packet transmission from the upstream service or transmits data to the client as them proceeds. The default value is \"False\".",
                    "type": "boolean"
                  },
                  "send_upstream_no_delay": {
                    "description": "Defines whether to wait the end of packet transmission from the client or transmits data to the upstream service as them proceeds. The default value is \"False\".",
                    "type": "boolean"
                  },
                  "sec_close_mode": {
                    "description": "Sets the closing mode of the connection. The default value is \"hard\".",
                    "type": "string",
                    "enum": [
                      "soft",
                      "hard"
                    ]
                  },
                  "sec_close_code": {
                    "description": "Sets the closing code when sec_close_mode is equal \"soft\". The default value is 1002.",
                    "type": "integer"
                  },
                  "sec_close_reason": {
                    "description": "Sets the closing reason when sec_close_mode is equal \"soft\". The default value is \"\".",
                    "type": "string"
                  },
                  "income_block_message": {
                    "description": "Sets the message sending to client when his message blocked by filter. If not specified, no message sending",
                    "type": "string"
                  },
                  "outgoing_block_message": {
                    "description": "Sets the message sending to client when server message blocked by filter. If not specified, no message sending",
                    "type": "string"
                  },
                  "upload_size_limit": {
                    "description": "Specifies the upload limit size for data transferring session. If limit exceeded, session disconnect will occur.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+)|([0-9]+[km]{1})$"
                  },
                  "pipelined_requests": {
                    "description": "Enables/disable pipelined requests, by default - on",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "http2_only": {
                    "description": "Allow to pass only http2 protocol connection. Default - off",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "download_size_limit": {
                    "description": "Specifies the download limit size for data transferring session. If limit exceeded, session disconnect will occur.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+)|([0-9]+[km]{1})$"
                  },
                  "size_limit_decompression": {
                    "description": "Defines whether to decompress the message before the limit check. Default false.",
                    "type": "boolean"
                  },
                  "set_variable": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "value": {
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "required": [
                        "name",
                        "value"
                      ]
                    }
                  },
                  "opentelemetry": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "tracing": {
                        "description": "Defines parameters of Opentelemetry Tracing",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "mode": {
                            "description": "Enable or disable tracing at this level",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "enabled": {
                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "on",
                                  "off",
                                  "var_based"
                                ]
                              },
                              "var": {
                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            },
                            "allOf": [
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "enabled"
                                  ],
                                  "properties": {
                                    "enabled": {
                                      "const": "var_based"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "var"
                                  ]
                                }
                              }
                            ]
                          },
                          "trace_context": {
                            "description": "Specifies how to propagate traceparent/tracestate headers.   Default - ignore",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "extract",
                              "inject",
                              "propagate",
                              "ignore"
                            ]
                          },
                          "span_name": {
                            "description": "Defines the name of span. By default - name of location, can be contain variables",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "span_attr": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "description": "name of attribute",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "value": {
                                  "description": "value of attribute, can contain variables",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            ""
                          ],
                          "properties": {
                            "": {
                              "properties": {
                                "system": {
                                  "type": "object",
                                  "required": [
                                    "system"
                                  ],
                                  "properties": {
                                    "system": {},
                                    "optional": {
                                      "type": "object",
                                      "required": [
                                        "opentelemetry"
                                      ],
                                      "properties": {
                                        "opentelemetry": {
                                          "pattern": ".+"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "tracing"
                            ]
                          }
                        }
                      }
                    ]
                  },
                  "exclude_req_stat": {
                    "description": "Excludes location request stats monitoring",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "exclude_resp_stat": {
                    "description": "Excludes location resp stats monitoring",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "limit_req": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enable limit req module",
                        "type": "boolean"
                      },
                      "rate": {
                        "description": "The count of requests which will be handled per time interval.",
                        "type": "number"
                      },
                      "rate_interval": {
                        "description": "Time interval for request rate measuring. Specify 's' for second and 'm' for minute. By default is 's'. Hint - if you need '0.5r/s', you can specify '30r/m'.",
                        "type": "string",
                        "enum": [
                          "s",
                          "m"
                        ]
                      },
                      "size": {
                        "description": "Shared memory zone used to store the state of each IP address and how often it has accessed a request limited URL. The default value is \"10m\"",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})$"
                      },
                      "burst": {
                        "description": "Defines how many requests a client can make in excess of the rate. The default value is \"0\"",
                        "type": "integer"
                      },
                      "cpu_limit": {
                        "description": "Defines maximum CPU load percentage. After exceeding limit, all incoming connections will be declined.",
                        "type": "integer"
                      },
                      "mem_limit": {
                        "description": "Defines maximum memory load percentage. After exceeding limit, all incoming connections will be declined.",
                        "type": "integer"
                      },
                      "target": {
                        "description": "Specifies a target for check. You can use predefined values 'src_ip' and 'service' or any nginx variables using prefix '$' (e.g. $server_port).",
                        "type": "string",
                        "pattern": "^((src_ip)|(service)|(request_method)|(\\$[a-z_]+))$"
                      },
                      "policy_type": {
                        "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                        "type": "string",
                        "enum": [
                          "allow",
                          "forbid"
                        ]
                      },
                      "exclude_ip": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "nodelay": {
                        "description": "default false",
                        "type": "boolean"
                      },
                      "forbid_action": {
                        "description": "Specifies location on which will be redirected",
                        "type": "string"
                      },
                      "status_code": {
                        "description": "Defines the response code if the limit is exceeded. Default value is \"413\".",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "dry_run": {
                        "description": "Enables dry run mode. Default is off.",
                        "type": "boolean"
                      },
                      "condition": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "condition_var": {
                            "type": "string",
                            "pattern": "^\\$.+$"
                          },
                          "condition_value": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ifall",
                              "ifany",
                              "if"
                            ]
                          },
                          "expression": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "variable": {
                                  "type": "string",
                                  "pattern": "^\\$.+$"
                                },
                                "operation": {
                                  "type": "string",
                                  "enum": [
                                    ">=",
                                    "=",
                                    ">",
                                    "<",
                                    "<=",
                                    "!=",
                                    "~",
                                    "~*",
                                    "!~",
                                    "!~*",
                                    "-f",
                                    "!-f",
                                    "-d",
                                    "!-d",
                                    "-e",
                                    "!-e",
                                    "-x",
                                    "!-x"
                                  ]
                                },
                                "value": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "variable"
                              ]
                            }
                          }
                        },
                        "required": [
                          "condition_var",
                          "condition_value",
                          "type"
                        ]
                      }
                    },
                    "required": [
                      "enabled",
                      "target"
                    ]
                  },
                  "limit_requests": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enable limit req module",
                        "type": "boolean"
                      },
                      "status_code": {
                        "description": "Defines the response code if the limit is exceeded. Default value is \"413\".",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "dry_run": {
                        "description": "Enables dry run mode. Default is off.",
                        "type": "boolean"
                      },
                      "limit_req": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "rate": {
                              "description": "The count of requests which will be handled per time interval.",
                              "type": "number"
                            },
                            "rate_interval": {
                              "description": "Time interval for request rate measuring. Specify 's' for second and 'm' for minute. By default is 's'. Hint - if you need '0.5r/s', you can specify '30r/m'.",
                              "type": "string",
                              "enum": [
                                "s",
                                "m"
                              ]
                            },
                            "size": {
                              "description": "Shared memory zone used to store the state of each IP address and how often it has accessed a request limited URL. The default value is \"10m\"",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^([0-9]+[kKmM]{1})$"
                            },
                            "burst": {
                              "description": "Defines how many requests a client can make in excess of the rate. The default value is \"0\"",
                              "type": "integer"
                            },
                            "cpu_limit": {
                              "description": "Defines maximum CPU load percentage. After exceeding limit, all incoming connections will be declined.",
                              "type": "integer"
                            },
                            "mem_limit": {
                              "description": "Defines maximum memory load percentage. After exceeding limit, all incoming connections will be declined.",
                              "type": "integer"
                            },
                            "target": {
                              "description": "Specifies a target for check. You can use predefined values 'src_ip' and 'service' or any nginx variables using prefix '$' (e.g. $server_port).",
                              "type": "string",
                              "pattern": "^((src_ip)|(service)|(request_method)|(\\$[a-z_]+))$"
                            },
                            "policy_type": {
                              "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                              "type": "string",
                              "enum": [
                                "allow",
                                "forbid"
                              ]
                            },
                            "exclude_ip": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                              }
                            },
                            "nodelay": {
                              "description": "default false",
                              "type": "boolean"
                            },
                            "forbid_action": {
                              "description": "Specifies location on which will be redirected",
                              "type": "string"
                            },
                            "condition": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "condition_var": {
                                  "type": "string",
                                  "pattern": "^\\$.+$"
                                },
                                "condition_value": {
                                  "type": "string"
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "ifall",
                                    "ifany",
                                    "if"
                                  ]
                                },
                                "expression": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "variable": {
                                        "type": "string",
                                        "pattern": "^\\$.+$"
                                      },
                                      "operation": {
                                        "type": "string",
                                        "enum": [
                                          ">=",
                                          "=",
                                          ">",
                                          "<",
                                          "<=",
                                          "!=",
                                          "~",
                                          "~*",
                                          "!~",
                                          "!~*",
                                          "-f",
                                          "!-f",
                                          "-d",
                                          "!-d",
                                          "-e",
                                          "!-e",
                                          "-x",
                                          "!-x"
                                        ]
                                      },
                                      "value": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "variable"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "condition_var",
                                "condition_value",
                                "type"
                              ]
                            }
                          },
                          "required": [
                            "target"
                          ]
                        }
                      }
                    },
                    "required": [
                      "enabled",
                      "limit_req"
                    ]
                  },
                  "robot_mitigation": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enables defense against HTTP robot attacks.",
                        "type": "boolean"
                      },
                      "blacklist": {
                        "description": "Means if a client has failed for N times, this client will be added into blacklist. Default 5",
                        "type": "integer"
                      },
                      "mode": {
                        "description": "Robot Mitigation will return a user-defined js code or predefined flash file to the client. Default js",
                        "type": "string",
                        "enum": [
                          "js",
                          "swf"
                        ]
                      },
                      "timeout": {
                        "description": "Sets the time for the next challenge to be initiated, in seconds. Default 60",
                        "type": "integer"
                      },
                      "ajax": {
                        "description": "This directive sets if challenge for ajax requests based on XMLRequest header. Default off",
                        "type": "boolean"
                      },
                      "policy_type": {
                        "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                        "type": "string",
                        "enum": [
                          "allow",
                          "forbid"
                        ]
                      },
                      "exclude_ip": {
                        "description": "Specifies the IP addresses, which will be excluded from whitelist",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "ua_whitelist": {
                        "description": "This directives specifies the User-Agent whitelist.",
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "ip_behavior": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "sample_base": {
                        "description": "Specifies the number of the request for a valid sample",
                        "type": "number"
                      },
                      "size": {
                        "description": "Size means how much memory will use by zone. The default value is \"10m\"",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})$"
                      },
                      "sample_cycle": {
                        "description": "Specifies the cyclog of the sampling, unit could be s (for second) and m (for minute).",
                        "type": "string",
                        "pattern": "^([0-9]+[mMsS]{1})$"
                      },
                      "sensitive": {
                        "description": "Specifies sensitive locations. If a location is defined as a sensitive location, all the resources under this location will be treated as sensitive. Default false",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "sample_base",
                      "size",
                      "sample_cycle"
                    ]
                  },
                  "cookie_poisoning": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enables monitoring the Set-Cookies headers and the cookie values in the response from server side.",
                        "type": "boolean"
                      },
                      "action": {
                        "description": "This directive specifies the action when cookie values are detected changed.  Default block",
                        "type": "string",
                        "pattern": "^block|pass|remove|blacklist,[0-9]+$"
                      },
                      "log": {
                        "type": "boolean"
                      },
                      "policy_type": {
                        "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                        "type": "string",
                        "enum": [
                          "allow",
                          "forbid"
                        ]
                      },
                      "exclude_ip": {
                        "description": "Specifies the IP addresses, which will be excluded from whitelist",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "include_ip": {
                        "description": "Specifies the IP addresses, which will be included to whitelist",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "ua_whitelist": {
                        "description": "This directives specifies the User-Agent whitelist.",
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "gzip": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enables response compression by gzip method.",
                        "type": "boolean"
                      },
                      "optional": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "level": {
                            "description": "Sets the compression level. The default value is \"5\".",
                            "type": "integer",
                            "enum": [
                              1,
                              2,
                              3,
                              4,
                              5,
                              6,
                              7,
                              8,
                              9
                            ]
                          },
                          "types": {
                            "description": "Sets the mime-types for which compression is applied. The default value is \"text/html\".",
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "buffer_count": {
                            "description": "Sets the count of buffers in wich the response will be placed. The default value is \"32\".",
                            "type": "integer"
                          },
                          "buffer_size": {
                            "description": "Sets the buffer size in wich the response will be placed. The default value is memory page size.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "exclude": {
                            "description": "Sets the list of the User-Agent specified by regular expressions for which compression will be disabled.",
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "min_length": {
                            "description": "Sets the minimum length of the response for which compression will be applied. The default value is \"20\".",
                            "type": "integer"
                          },
                          "http_version": {
                            "description": "Specifies the minimum version for the request necessary for the response compression. The default value is \"1.0\"",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              1.0,
                              1.1
                            ]
                          },
                          "proxied": {
                            "description": "Enables or disables gzipping of responses for proxied requests depending on the request and response.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              false,
                              "expired",
                              "no-cache",
                              "no-store",
                              "private",
                              "no_last_modified",
                              "no_etag",
                              "auth",
                              "any"
                            ]
                          },
                          "vary": {
                            "description": "Enables or disables inserting the 'Vary: Accept-Encoding' response header field if the directives gzip, gzip_static, or gunzip are active.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              true,
                              false
                            ]
                          },
                          "static": {
                            "description": "Enables or disables checking the existence of precompressed files. With the \"always\" value, gzipped file is used in all cases, without checking if the client supports it. Default - off",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              true,
                              false,
                              "always"
                            ]
                          }
                        }
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "limit_conn": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enable limit conn module",
                        "type": "boolean"
                      },
                      "count": {
                        "description": "The count of connections which will be handled.",
                        "type": "number"
                      },
                      "size": {
                        "description": "Shared memory zone used to store the state of each target and how often it has create connection. The default value is \"10m\"",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})$"
                      },
                      "target": {
                        "description": "Specifies a target for check.",
                        "type": "string"
                      },
                      "status_code": {
                        "description": "Defines the response code if the limit is exceeded. Default value is \"503\".",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "dry_run": {
                        "description": "Enables dry run mode. Default is off.",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "enabled",
                      "count",
                      "target"
                    ]
                  },
                  "async_io": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "directio_threshold": {
                        "description": "Enables the use of the O_DIRECT flag (FreeBSD, Linux), the F_NOCACHE flag (macOS), or the directio() function (Solaris), when reading files that are larger than or equal to the specified size.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "thread_pool_id": {
                        "description": "Defines thread pool to use by id. If the thread_pool_id is omitted, the pool with the name default is used.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "write": {
                        "description": "Specifies whether async_io is used for writing files.",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "directio_threshold"
                    ]
                  },
                  "log_masking_rules": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "log_type": {
                          "description": "Which log type will be masked",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "event",
                            "security",
                            "all"
                          ]
                        },
                        "object": {
                          "description": "Specifies in which part of data masking will be maked",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "request_header",
                            "response_header",
                            "request_body",
                            "response_body",
                            "request_cookie",
                            "response_cookie"
                          ]
                        },
                        "cookie": {
                          "description": "Individual cookie name wich will be masked",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "header": {
                          "description": "Header name which will be masked",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "mask_symbol": {
                          "description": "Specifies which symbol will be used on replacement",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "."
                        },
                        "expression": {
                          "description": "Search pattern",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "replace_group": {
                          "description": "Specifies group number in expression which will be used for replacement for request or response body. If 0 - replacing full match string",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^[0-9]*$"
                        },
                        "replace_all": {
                          "description": "Replace all occurences or first. By default only first occurence replacing",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "exclusion": {
                          "description": "Define exlcusion from masking in all object with this type, default false",
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "object"
                      ]
                    }
                  },
                  "client_body_buffer_size": {
                    "description": "Sets buffer size for reading client request body. Default By default, buffer size is equal to two memory pages. For x86 it is usually 8K.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "client_body_in_file_only": {
                    "description": "Determines whether nginx should save the entire client request body into a file. By default is off.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off",
                      "clean"
                    ]
                  },
                  "client_body_in_single_buffer": {
                    "description": "Determines whether nginx should save the entire client request body in a single buffer. By default is off.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "client_header_buffer_size": {
                    "description": "Sets buffer size for reading client request header. By default is 1k.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "large_client_header_buffers": {
                    "description": "Sets the maximum number and size of buffers used for reading large client request header. By default the number is 4, the size is 4k.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "number": {
                        "type": "integer"
                      },
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      }
                    },
                    "required": [
                      "number",
                      "size"
                    ]
                  },
                  "output_buffers": {
                    "description": "Sets the number and size of the buffers used for reading a response from a disk. By default the number is 2, the size is 32k.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "number": {
                        "type": "integer"
                      },
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      }
                    },
                    "required": [
                      "number",
                      "size"
                    ]
                  },
                  "subrequest_output_buffer_size": {
                    "description": "Sets the size of the buffer used for storing the response body of a subrequest. By default, the buffer size is equal to one memory page.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_buffer_size": {
                    "description": "Sets the size of the buffer used for reading the first part of the response received from the proxied server. By default, the buffer size is equal to one memory page.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_buffering": {
                    "description": "Enables or disables buffering of responses from the proxied server. By default is on.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "proxy_buffers": {
                    "description": "Sets the number and size of the buffers used for reading a response from the proxied server, for a single connection. By default the number is 8, the size is equal to one memory page.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "number": {
                        "type": "integer"
                      },
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      }
                    },
                    "required": [
                      "number",
                      "size"
                    ]
                  },
                  "proxy_busy_buffers_size": {
                    "description": "When buffering of responses from the proxied server is enabled, limits the total size of buffers that can be busy sending a response to the client while the response is not yet fully read. By default, size is limited by the size of two buffers set by the proxy_buffer_size and proxy_buffers directives.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_request_buffering": {
                    "description": "Enables or disables buffering of a client request body. By default is on.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "proxy_max_temp_file_size": {
                    "description": "When buffering of responses from the proxied server is enabled, and the whole response does not fit into the buffers set by the proxy_buffer_size and proxy_buffers directives, a part of the response can be saved to a temporary file. This directive sets the maximum size of the temporary file. The size of data written to the temporary file at a time is set by the proxy_temp_file_write_size directive. The zero value disables buffering of responses to temporary files.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_temp_file_write_size": {
                    "description": "Limits the size of data written to a temporary file at a time, when buffering of responses from the proxied server to temporary files is enabled. By default, size is limited by two buffers set by the proxy_buffer_size and proxy_buffers directives. The maximum size of a temporary file is set by the proxy_max_temp_file_size directive.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_max_downstream_presend_inmemory_size": {
                    "description": "When used body filters such Modsecurity or Response size body filter, we always read all upstream data before sending client. Setting this parameter adjust maximum data in memory size, if 0 specified limit is not setted",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "http2": {
                    "description": "Define http2 specific parameters",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "body_preread_size": {
                        "description": "Sets the size of the buffer per each request in which the request body may be saved before it is started to be processed. By default - 64k",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "chunk_size": {
                        "description": "Sets the maximum size of chunks into which the response body is sliced. A too low value results in higher overhead. A too high value impairs prioritization due to HOL blocking. By default - 8k",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "max_concurrent_pushes": {
                        "description": "Limits the maximum number of concurrent push requests in a connection. By default - 10",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+)$"
                      },
                      "max_concurrent_streams": {
                        "description": "Sets the maximum number of concurrent HTTP/2 streams in a connection. By default - 128",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+)$"
                      },
                      "push_preload": {
                        "description": "Enables automatic conversion of preload links specified in the “Link” response header fields into push requests. By default - off",
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "pushes": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "push_parent": {
                            "description": "Cancels the effect of the push directives inherited from the previous configuration level. By default off",
                            "type": "string",
                            "enum": [
                              "on",
                              "off"
                            ]
                          },
                          "push_list": {
                            "description": "List of Pre-emptively sends (pushes) a request to the specified uri along with the response to the original request. Only relative URIs with absolute path will be processed",
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    }
                  },
                  "log_type": {
                    "description": "Specifies logging mode for sowa-nginx. Default mode - file.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "kafka": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "group": {
                              "description": "Specifies which group of logs will use current settings.",
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "system",
                                  "error",
                                  "access"
                                ]
                              }
                            },
                            "id": {
                              "description": "Specifies client.id.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "broker": {
                              "description": "Initial list of brokers as a host:port separated by comma.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "topic": {
                              "description": "Specifies topic name.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^\\S*$"
                            },
                            "protocol": {
                              "description": "Specifies connection protocol. Plaintext by default.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "plaintext",
                                "ssl"
                              ]
                            },
                            "certificate": {
                              "description": "Specifies ssl.certificate.location",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "ca": {
                              "description": "Specifies ssl.ca.location.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "key": {
                              "description": "Specifies ssl.key.location.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "ciphers": {
                              "description": "Specifies ssl.cipher.suites. Same as default ssl ciphers.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "compression_codec": {
                              "description": "Compression codec to use for compressing message sets.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "none",
                                "gzip",
                                "snappy",
                                "lz4",
                                "zstd"
                              ]
                            },
                            "compression_level": {
                              "description": "Compression level parameter for algorithm selected by configuration property compression.codec. Higher values will result in better compression at the cost of more CPU usage.",
                              "type": "integer",
                              "minimum": -1,
                              "maximum": 12
                            },
                            "log_level": {
                              "description": "Logging level (syslog(3) levels).",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "debug": {
                              "description": "A comma-separated list of debug contexts to enable.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "max_messages": {
                              "description": "Maximum number of messages batched in one MessageSet.",
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 1000000
                            },
                            "pattern_file": {
                              "description": "Template file with custom log structure.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "escape": {
                              "description": "Defines if you need to escape variables used in pattern file.",
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "broker",
                            "topic"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "certificate"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "ca"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "key"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ciphers"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      },
                      "syslog": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "group": {
                              "description": "Specifies which group of logs will use current settings.",
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "system",
                                  "error",
                                  "access"
                                ]
                              }
                            },
                            "log_host": {
                              "description": "Specifies host for remote logging to syslog.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "log_port": {
                              "description": "Specifies port for remote logging to syslog. Default port - 514.",
                              "type": [
                                "number",
                                "string"
                              ]
                            }
                          }
                        }
                      },
                      "file": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "group": {
                              "description": "Specifies which group of logs will use current settings.",
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "system",
                                  "error",
                                  "access"
                                ]
                              }
                            }
                          }
                        }
                      },
                      "security": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Enables logging security security events (XSD, JSON, WSDL and other validators). False by default.",
                            "type": "boolean"
                          },
                          "threads_count": {
                            "description": "Specifies count of threads for thread pool, used for sending security events to syslog. Default is 16",
                            "type": "integer"
                          },
                          "hostname": {
                            "description": "Specifies hostname to dispaly in syslog event. Default is current hostname.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "appname": {
                            "description": "Specifies application name to dispaly in syslog event. Default is \"sowa-security\".",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "facility": {
                            "description": "Specifies facility for syslog event. Default is USER.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "KERN",
                              "USER",
                              "MAIL",
                              "DAEMON",
                              "AUTH",
                              "SYSLOG",
                              "LPR",
                              "NEWS",
                              "UUCP",
                              "CRON",
                              "AUTHPRIV",
                              "FTP",
                              "NTP",
                              "AUDIT",
                              "ALERT",
                              "CLOCK",
                              "LOCAL0",
                              "LOCAL1",
                              "LOCAL2",
                              "LOCAL3",
                              "LOCAL4",
                              "LOCAL5",
                              "LOCAL6",
                              "LOCAL7"
                            ]
                          },
                          "severity": {
                            "description": "Specifies severity for syslog event. Default is INFORMATIONAL.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "EMERGENCY",
                              "ALERT",
                              "CRITICAL",
                              "ERROR",
                              "WARNING",
                              "NOTICE",
                              "INFORMATIONAL",
                              "DEBUG"
                            ]
                          },
                          "target_host": {
                            "description": "Specifies host to send syslog event. Default is \"127.0.0.1\"",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "target_port": {
                            "description": "Specifies port to send syslog event. Default is 514.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 65535
                          },
                          "protocol": {
                            "description": "Specifies used protocol to send syslog event. Default is UDP.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "UDP",
                              "TCP"
                            ]
                          },
                          "msg_format": {
                            "description": "Specifies message format to send syslog event. Default is RFC_3164",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "RFC_3164",
                              "RFC_5424",
                              "RFC_5425"
                            ]
                          }
                        }
                      }
                    }
                  },
                  "proxy_ssl": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "ssl_use": {
                        "description": "Enables SSL. Default is 'off'.",
                        "type": "boolean"
                      },
                      "sspi": {
                        "description": "Enables GOST TLS mode. Default id false.",
                        "type": "boolean"
                      },
                      "ssl_verify_local_crl_only": {
                        "description": "GOST mode. Specifies whether to check the certificate status locally (otherwise check online). Default is \"off\" (online check).",
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "ssl_verify_ignore_cn": {
                        "description": "GOST mode. Specifies whether to skip CN check. Default is \"off\" (do not skip).",
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "ssl_session_reuse": {
                        "description": "Determines whether SSL sessions can be reused when working with the proxied server. Default is 'on'.",
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "ssl_protocols": {
                        "description": "Enables the specified protocols for requests to a proxied HTTPS server. The default value is \"TLSv1 TLSv1.1 TLSv1.2\"",
                        "type": "array",
                        "uniqueItems": true,
                        "items": {
                          "type": "string",
                          "enum": [
                            "SSLv2",
                            "SSLv3",
                            "TLSv1",
                            "TLSv1.1",
                            "TLSv1.2",
                            "TLSv1.3"
                          ]
                        }
                      },
                      "ssl_ciphers": {
                        "description": "Specifies the enabled ciphers for requests to a proxied HTTPS server. The default value is \"HIGH:!aNULL:!MD5\".",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "prefix": {
                              "type": "string",
                              "enum": [
                                "!",
                                "+",
                                "-"
                              ]
                            },
                            "value": {
                              "type": "array",
                              "uniqueItems": true,
                              "items": {
                                "type": "string",
                                "enum": [
                                  "DEFAULT",
                                  "COMPLEMENTOFDEFAULT",
                                  "ALL",
                                  "COMPLEMENTOFALL",
                                  "HIGH",
                                  "MEDIUM",
                                  "LOW",
                                  "EXP",
                                  "EXPORT",
                                  "EXPORT40",
                                  "EXPORT56",
                                  "eNULL",
                                  "NULL",
                                  "aNULL",
                                  "kRSA",
                                  "RSA",
                                  "kDHr",
                                  "kDHd",
                                  "kDH",
                                  "kDHE",
                                  "kEDH",
                                  "DHE",
                                  "EDH",
                                  "ADH",
                                  "DH",
                                  "kECDHr",
                                  "kECDHe",
                                  "kECDH",
                                  "kECDHE",
                                  "kEECDH",
                                  "ECDHE",
                                  "EECDH",
                                  "AECDH",
                                  "ECDH",
                                  "aRSA",
                                  "aDSS",
                                  "DSS",
                                  "aDH",
                                  "aECDH",
                                  "aECDSA",
                                  "ECDSA",
                                  "kFZA",
                                  "aFZA",
                                  "eFZA",
                                  "FZA",
                                  "TLSv1.2",
                                  "TLSv1",
                                  "SSLv3",
                                  "SSLv2",
                                  "AES128",
                                  "AES256",
                                  "AES",
                                  "AESGCM",
                                  "CAMELLIA128",
                                  "CAMELLIA256",
                                  "CAMELLIA",
                                  "3DES",
                                  "DES",
                                  "RC4",
                                  "RC2",
                                  "IDEA",
                                  "SEED",
                                  "MD5",
                                  "SHA1",
                                  "SHA",
                                  "SHA256",
                                  "SHA384",
                                  "aGOST",
                                  "aGOST01",
                                  "aGOST94",
                                  "kGOST",
                                  "GOST94",
                                  "GOST89MAC",
                                  "PSK",
                                  "SUITEB128",
                                  "SUITEB128ONLY",
                                  "SUITEB192",
                                  "@STRENGTH",
                                  "NULL-SHA256"
                                ]
                              }
                            }
                          },
                          "required": [
                            "value"
                          ]
                        }
                      },
                      "ssl_ciphers_str": {
                        "description": "Specifies the string of enabled ciphers for requests to a proxied HTTPS server.",
                        "type": "string"
                      },
                      "ssl_name": {
                        "description": "Allows overriding the server name used to verify the certificate of the proxied HTTPS server and to be passed through SNI when establishing a connection with the proxied HTTPS server. There is no default value.",
                        "type": "string"
                      },
                      "ssl_name_upstream_host": {
                        "description": "Enables using upstream host to verify the certificate of the proxied HTTPS server when ssl_name isn't specified. Default \"on\".",
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "ssl_name_verify_off": {
                        "description": "Enable or disable ssl_name verifying",
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "ssl_server_name": {
                        "description": "Enables or disables passing of the server name through TLS Server Name Indication extension (SNI, RFC 6066) when establishing a connection with the proxied HTTPS server. Default is \"off\".",
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "ssl_verify": {
                        "description": "Enables or disables verification of the proxied HTTPS server certificate. Default is \"off\"",
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "ssl_verify_depth": {
                        "description": "Sets the verification depth in the proxied HTTPS server certificates chain. Default is \"1\".",
                        "type": "integer",
                        "minimum": 0
                      },
                      "ssl_trusted_certificate": {
                        "description": "Specifies a file with trusted CA certificates in the PEM format used to verify the certificate of the proxied HTTPS server. There is no default value.",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "ssl_dn_verify_trusted_path": {
                        "description": "Specifies the file with allowed regex of client certificate dn",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "ssl_fingerprint_verify_trusted_path": {
                        "description": "Specifies the file with allowed regex of client certificate dn",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "ssl_verify_error_code": {
                        "description": "Defines the response code if verification upstream certificate failed.",
                        "type": "integer"
                      },
                      "ssl_crl": {
                        "description": "Specifies a file with revoked certificates (CRL) in the PEM format used to verify the certificate of the proxied HTTPS server. There is no default value.",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "ssl_certificate": {
                        "description": "Specifies a file with the certificate in the PEM format used for authentication to a proxied HTTPS server. There is no default value.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "ssl_certificate_key": {
                        "description": "Specifies a file with the secret key in the PEM format used for authentication to a proxied HTTPS server. There is no default value.",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "ssl_password_file": {
                        "description": "Specifies a file with passphrases for secret keys where each passphrase is specified on a separate line. There is no default value.",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_use"
                          ],
                          "properties": {
                            "ssl_use": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ssl_session_reuse"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_use"
                          ],
                          "properties": {
                            "ssl_use": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ssl_protocols"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_use"
                          ],
                          "properties": {
                            "ssl_use": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ssl_server_name"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_use"
                          ],
                          "properties": {
                            "ssl_use": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ssl_verify"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_use"
                          ],
                          "properties": {
                            "ssl_use": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ssl_verify_depth"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_dn_verify_trusted_path"
                          ],
                          "properties": {
                            "ssl_dn_verify_trusted_path": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ssl_verify_error_code"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_fingerprint_verify_trusted_path"
                          ],
                          "properties": {
                            "ssl_fingerprint_verify_trusted_path": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ssl_verify_error_code"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_use"
                          ],
                          "properties": {
                            "ssl_use": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ssl_crl"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_use"
                          ],
                          "properties": {
                            "ssl_use": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ssl_certificate"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_use"
                          ],
                          "properties": {
                            "ssl_use": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ssl_certificate_key"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_use"
                          ],
                          "properties": {
                            "ssl_use": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "ssl_password_file"
                            ]
                          }
                        }
                      }
                    ]
                  },
                  "healthcheck_dynamic": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "initial_state_param_file": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "manual_state_var_refresh_interval": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                      },
                      "endpoints": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "url": {
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "response": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "code": {
                                  "description": "Specifies an array of error codes by which templates will be generated.",
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  }
                                },
                                "pattern_file": {
                                  "description": "Specifies pattern file which will be used as response body.",
                                  "type": "string",
                                  "enum": [
                                    "hc_pattern_default.json",
                                    "hc_pattern_profile_default.json",
                                    "hc_pattern_service_default.json"
                                  ]
                                },
                                "custom_pattern_file": {
                                  "description": "Specifies rule file which describes how to fill pattern file.",
                                  "type": "string",
                                  "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                },
                                "rules_file": {
                                  "description": "Specifies rule file which describes how to fill pattern file. Default - rules file from system resources.",
                                  "type": "string",
                                  "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                },
                                "content_type": {
                                  "description": "Specifies content type for response header. Default - none.",
                                  "type": "string"
                                }
                              }
                            },
                            "upstream_check_type": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "ANY_UPSTREAM_UP",
                                "ALL_UPSTREAM_UP",
                                "ANY_UPSTREAM_UP_OR_DRAIN",
                                "ALL_UPSTREAM_UP_OR_DRAIN"
                              ]
                            },
                            "service_id": {
                              "description": "Binded service id",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "upstream_filter": {
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "disable_access_log": {
                              "description": "Disable writing access log, by default -false",
                              "type": "boolean"
                            },
                            "disable_error_log": {
                              "description": "Disable writing error log, default false",
                              "type": "boolean"
                            },
                            "disable_gathering_stats": {
                              "description": "Disable gathering stat, default false",
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "url",
                            "response"
                          ]
                        }
                      }
                    }
                  }
                },
                "allOf": [
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "limit_requests"
                      ],
                      "properties": {
                        "limit_requests": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "limit_req"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "limit_req"
                      ],
                      "properties": {
                        "limit_req": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "limit_requests"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_buffering"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_buffers"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_busy_buffers_size"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_request_buffering"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_max_temp_file_size"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_temp_file_write_size"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_max_downstream_presend_inmemory_size"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        ".."
                      ],
                      "properties": {
                        "..": {
                          "type": "object",
                          "required": [
                            "listen"
                          ],
                          "properties": {
                            "listen": {
                              "pattern": ".+"
                            }
                          }
                        }
                      }
                    },
                    "else": {
                      "not": {
                        "required": [
                          "healthcheck_dynamic"
                        ]
                      }
                    }
                  }
                ]
              },
              "modifiers": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "set_header": {
                    "description": "Allows to redefine or replace header in client request.",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "proxy_host_resolved": {
                    "description": "Determines whether the original peer name or its resolved IP representation will be pass to the upstream in header \"Host\". Default is false.",
                    "type": "boolean"
                  },
                  "pass_header": {
                    "description": "Allows passing forbidden headers from the upstream to the client.",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "proxy_redirect": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "sub_filter": {
                    "description": "Allows to make replace from one string to another in the upstream response.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "once": {
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "last_modified": {
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "replace": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "from": {
                              "type": "string"
                            },
                            "to": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "from",
                            "to"
                          ]
                        }
                      }
                    },
                    "required": [
                      "replace"
                    ]
                  },
                  "subs_filter": {
                    "description": "Allows to make replace from one string to another in the upstream response using regular expressions.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "mime_types": {
                        "description": "Default \"*\"",
                        "type": "string"
                      },
                      "replace": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "from": {
                              "type": "string"
                            },
                            "to": {
                              "type": "string"
                            },
                            "flags": {
                              "description": "Default \"r\"",
                              "type": "array",
                              "uniqueItems": true,
                              "items": {
                                "type": "string",
                                "enum": [
                                  "i",
                                  "g",
                                  "o",
                                  "r"
                                ]
                              }
                            }
                          },
                          "required": [
                            "from",
                            "to"
                          ]
                        }
                      }
                    },
                    "required": [
                      "replace"
                    ]
                  },
                  "cors": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "origin_wl": {
                        "description": "Specifies whitelist for the Origin header.",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "origin_wl_type": {
                        "description": "Specifies type for the 'origin_wl' directive. 're' - whitelist with regex values, 'recl' - whitelist with caseless regex values. If not specified, then full match used.",
                        "type": "string",
                        "enum": [
                          "re",
                          "recl"
                        ]
                      },
                      "origin_allow_null_wl": {
                        "description": "Specifies whitelist of hosts whom allowed 'Origin null'.",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "origin_allow_null_wl_type": {
                        "description": "Specifies type for the 'origin_allow_null_wl' directive. 're' - whitelist with regex values, 'recl' - whitelist with caseless regex values. If not specified, then full match used.",
                        "type": "string",
                        "enum": [
                          "re",
                          "recl"
                        ]
                      },
                      "method_wl": {
                        "description": "Specifies whitelist for the request method. Used in prefligth request.",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "get",
                            "head",
                            "post",
                            "put",
                            "connect",
                            "options",
                            "trace",
                            "patch",
                            "delete"
                          ]
                        }
                      },
                      "deny_status": {
                        "description": "Specifies the deny status when CORS checks is failed. By default is 403.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(4|5)[0-9]{2}$"
                      }
                    },
                    "required": [
                      "origin_wl",
                      "method_wl"
                    ]
                  },
                  "set_output_headers": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "headers": {
                          "description": "Specifies header line. For example 'X-MyHeader foo'.",
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "status_codes": {
                          "description": "Specifies status code criteria.",
                          "type": "array",
                          "items": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^[1-5][0-9]{2}$"
                          }
                        },
                        "content_types": {
                          "description": "Specifies content type criteria in response headers. For example 'text/html'.",
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "conditions": {
                          "description": "Specifies the conditions file for the headers.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "conditions_reverse": {
                          "type": "boolean"
                        },
                        "set_var": {
                          "description": "Setting variable for use in this headers. For example '$orig_xff $http_x_forwarded_for'.",
                          "type": "string"
                        },
                        "value_regex": {
                          "description": "Updates an existing header if it's current value matches the specified regular expression. Example '~*session=.*'",
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "required": [
                        "headers"
                      ],
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "conditions"
                            ],
                            "properties": {
                              "conditions": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "conditions_reverse"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  },
                  "set_input_headers": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "headers": {
                          "description": "Specifies header line. For example 'X-MyHeader foo'.",
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "content_types": {
                          "description": "Specifies content type criteria in request headers. For example 'text/html'.",
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "conditions": {
                          "description": "Specifies the conditions file for the headers.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "conditions_reverse": {
                          "type": "boolean"
                        },
                        "set_var": {
                          "description": "Setting variable for use in this headers. For example '$orig_xff $http_x_forwarded_for'.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "headers"
                      ],
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "conditions"
                            ],
                            "properties": {
                              "conditions": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "conditions_reverse"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  }
                },
                "allOf": [
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        ".."
                      ],
                      "properties": {
                        "..": {
                          "properties": {
                            "optional": {
                              "type": "object",
                              "required": [
                                "http_version"
                              ],
                              "properties": {
                                "http_version": {}
                              }
                            }
                          }
                        }
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_redirect"
                        ]
                      }
                    }
                  }
                ]
              },
              "filters": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "filter_web_socket": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "http": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "WsAsynHttpFilter",
                                "WsMultiMsgAsynHttpFilter",
                                "WsAsynHttpFilterWithPartialDecompression"
                              ]
                            },
                            "action": {
                              "type": "string",
                              "enum": [
                                "disconnect",
                                "block",
                                "ignore"
                              ]
                            },
                            "stage": {
                              "type": "string",
                              "enum": [
                                "REQ",
                                "RESP"
                              ]
                            },
                            "apply": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "filter_mds": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "enabled": {
                                      "description": "Specifies to enable or disable MDS. Default is \"True\".",
                                      "type": "boolean"
                                    },
                                    "aio": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "enabled": {
                                          "description": "When specified true, dedicated thread will be used for request/response processing when its possible, value inherited from parent and may be overrite in child",
                                          "type": "boolean"
                                        },
                                        "thread_pool_id": {
                                          "description": "name of thread pool from section system/optional/thread_pools, value inherite from parent and may by override in child. Must be specified when aio is true",
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        }
                                      }
                                    },
                                    "ignore_parent": {
                                      "description": "Specifies ignore parent rules and settings or not",
                                      "type": "boolean"
                                    },
                                    "debug": {
                                      "type": "boolean"
                                    },
                                    "config": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "SecRuleEngine": {
                                          "enum": [
                                            true,
                                            false,
                                            "DetectionOnly"
                                          ]
                                        },
                                        "SecRequestBodyAccess": {
                                          "type": "boolean"
                                        },
                                        "SecRequestBodyLimit": {
                                          "type": "integer"
                                        },
                                        "SecRequestBodyLimitAction": {
                                          "type": "string"
                                        },
                                        "SecPcreMatchLimit": {
                                          "type": "integer"
                                        },
                                        "SecPcreMatchLimitRecursion": {
                                          "type": "integer"
                                        },
                                        "SecResponseBodyAccess": {
                                          "type": "boolean"
                                        },
                                        "SecResponseBodyMimeType": {
                                          "type": "string"
                                        },
                                        "SecResponseBodyLimit": {
                                          "type": "integer"
                                        },
                                        "SecResponseBodyLimitAction": {
                                          "type": "string"
                                        },
                                        "SecStreamOutBodyInspection": {
                                          "type": "boolean"
                                        },
                                        "SecUploadKeepFiles": {
                                          "type": "boolean"
                                        },
                                        "SecAuditEngine": {
                                          "type": "string"
                                        },
                                        "SecAuditLogRelevantStatus": {
                                          "type": "string"
                                        },
                                        "SecAuditLogParts": {
                                          "type": "string"
                                        },
                                        "SecAuditLogType": {
                                          "type": "string",
                                          "enum": [
                                            "Syslog",
                                            "Serial",
                                            "Concurrent",
                                            "Kafka"
                                          ]
                                        },
                                        "SecAuditSyslogHost": {
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "SecAuditSyslogPort": {
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "SecAuditSyslogProtocol": {
                                          "type": [
                                            "number",
                                            "string"
                                          ],
                                          "enum": [
                                            "tcp",
                                            "udp"
                                          ]
                                        },
                                        "SecAuditSyslogConnectTimeout": {
                                          "type": "integer"
                                        },
                                        "SecArgumentSeparator": {
                                          "type": "string"
                                        },
                                        "SecCookieFormat": {
                                          "type": "integer"
                                        },
                                        "SecUnicodeMapFile": {
                                          "type": "object",
                                          "additionalProperties": false,
                                          "properties": {
                                            "file": {
                                              "type": [
                                                "number",
                                                "string"
                                              ]
                                            },
                                            "code": {
                                              "type": [
                                                "number",
                                                "string"
                                              ]
                                            }
                                          },
                                          "required": [
                                            "file",
                                            "code"
                                          ]
                                        },
                                        "SecUseTransformCache": {
                                          "type": "boolean"
                                        },
                                        "SecRequestTimeout": {
                                          "type": "integer"
                                        },
                                        "SecPassSlowRequest": {
                                          "type": "boolean"
                                        },
                                        "SecResponseTimeout": {
                                          "type": "integer"
                                        },
                                        "SecPassSlowResponse": {
                                          "type": "boolean"
                                        },
                                        "SecLogFullBodyOnTimeout": {
                                          "type": "boolean"
                                        },
                                        "SecAuditKafkaBrokers": {
                                          "description": "CSV list of brokers",
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "SecAuditKafkaTopic": {
                                          "description": "topic to connect to",
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "SecAuditKafkaProtocol": {
                                          "description": "connection protocol",
                                          "type": [
                                            "number",
                                            "string"
                                          ],
                                          "enum": [
                                            "plaintext",
                                            "ssl"
                                          ]
                                        },
                                        "SecAuditKafkaCertificate": {
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "SecAuditKafkaKey": {
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "SecAuditKafkaCa": {
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        }
                                      },
                                      "allOf": [
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "SecRequestBodyLimitAction"
                                            ],
                                            "properties": {
                                              "SecRequestBodyLimitAction": {
                                                "pattern": ".+"
                                              }
                                            }
                                          },
                                          "then": {
                                            "required": [
                                              "SecRequestBodyLimit"
                                            ]
                                          }
                                        },
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "SecRequestBodyLimit"
                                            ],
                                            "properties": {
                                              "SecRequestBodyLimit": {
                                                "pattern": ".+"
                                              }
                                            }
                                          },
                                          "then": {
                                            "required": [
                                              "SecRequestBodyLimitAction"
                                            ]
                                          }
                                        },
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "SecResponseBodyLimitAction"
                                            ],
                                            "properties": {
                                              "SecResponseBodyLimitAction": {
                                                "pattern": ".+"
                                              }
                                            }
                                          },
                                          "then": {
                                            "required": [
                                              "SecResponseBodyLimit"
                                            ]
                                          }
                                        },
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "SecResponseBodyLimit"
                                            ],
                                            "properties": {
                                              "SecResponseBodyLimit": {
                                                "pattern": ".+"
                                              }
                                            }
                                          },
                                          "then": {
                                            "required": [
                                              "SecResponseBodyLimitAction"
                                            ]
                                          }
                                        },
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "SecAuditLogType"
                                            ],
                                            "properties": {
                                              "SecAuditLogType": {
                                                "const": "Kafka"
                                              }
                                            }
                                          },
                                          "then": {
                                            "required": [
                                              "SecAuditKafkaBrokers"
                                            ]
                                          }
                                        },
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "SecAuditLogType"
                                            ],
                                            "properties": {
                                              "SecAuditLogType": {
                                                "const": "Kafka"
                                              }
                                            }
                                          },
                                          "then": {
                                            "required": [
                                              "SecAuditKafkaTopic"
                                            ]
                                          }
                                        },
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "SecAuditKafkaProtocol"
                                            ],
                                            "properties": {
                                              "SecAuditKafkaProtocol": {
                                                "const": "ssl"
                                              }
                                            }
                                          },
                                          "then": {
                                            "required": [
                                              "SecAuditKafkaCertificate"
                                            ]
                                          }
                                        },
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "SecAuditKafkaProtocol"
                                            ],
                                            "properties": {
                                              "SecAuditKafkaProtocol": {
                                                "const": "ssl"
                                              }
                                            }
                                          },
                                          "then": {
                                            "required": [
                                              "SecAuditKafkaKey"
                                            ]
                                          }
                                        },
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "SecRequestBodyLimitAction"
                                            ],
                                            "properties": {
                                              "SecRequestBodyLimitAction": {
                                                "pattern": ".+"
                                              }
                                            }
                                          },
                                          "else": {
                                            "not": {
                                              "required": [
                                                "SecRequestBodyLimit"
                                              ]
                                            }
                                          }
                                        },
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "SecRequestBodyLimit"
                                            ],
                                            "properties": {
                                              "SecRequestBodyLimit": {
                                                "pattern": ".+"
                                              }
                                            }
                                          },
                                          "else": {
                                            "not": {
                                              "required": [
                                                "SecRequestBodyLimitAction"
                                              ]
                                            }
                                          }
                                        },
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "SecResponseBodyLimitAction"
                                            ],
                                            "properties": {
                                              "SecResponseBodyLimitAction": {
                                                "pattern": ".+"
                                              }
                                            }
                                          },
                                          "else": {
                                            "not": {
                                              "required": [
                                                "SecResponseBodyLimit"
                                              ]
                                            }
                                          }
                                        },
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "SecResponseBodyLimit"
                                            ],
                                            "properties": {
                                              "SecResponseBodyLimit": {
                                                "pattern": ".+"
                                              }
                                            }
                                          },
                                          "else": {
                                            "not": {
                                              "required": [
                                                "SecResponseBodyLimitAction"
                                              ]
                                            }
                                          }
                                        },
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "SecRequestTimeout"
                                            ],
                                            "properties": {
                                              "SecRequestTimeout": {
                                                "pattern": ".+"
                                              }
                                            }
                                          },
                                          "else": {
                                            "not": {
                                              "required": [
                                                "SecPassSlowRequest"
                                              ]
                                            }
                                          }
                                        },
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "SecResponseTimeout"
                                            ],
                                            "properties": {
                                              "SecResponseTimeout": {
                                                "pattern": ".+"
                                              }
                                            }
                                          },
                                          "else": {
                                            "not": {
                                              "required": [
                                                "SecPassSlowResponse"
                                              ]
                                            }
                                          }
                                        },
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "SecResponseTimeout"
                                            ],
                                            "properties": {
                                              "SecResponseTimeout": {
                                                "pattern": ".+"
                                              }
                                            }
                                          },
                                          "else": {
                                            "not": {
                                              "required": [
                                                "SecLogFullBodyOnTimeout"
                                              ]
                                            }
                                          }
                                        },
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "SecRequestTimeout"
                                            ],
                                            "properties": {
                                              "SecRequestTimeout": {
                                                "pattern": ".+"
                                              }
                                            }
                                          },
                                          "else": {
                                            "not": {
                                              "required": [
                                                "SecLogFullBodyOnTimeout"
                                              ]
                                            }
                                          }
                                        },
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "SecAuditKafkaProtocol"
                                            ],
                                            "properties": {
                                              "SecAuditKafkaProtocol": {
                                                "const": "ssl"
                                              }
                                            }
                                          },
                                          "else": {
                                            "not": {
                                              "required": [
                                                "SecAuditKafkaCa"
                                              ]
                                            }
                                          }
                                        }
                                      ]
                                    },
                                    "rules": {
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "enum": [
                                          "base",
                                          "owasp-crs",
                                          "comodo",
                                          "sowa-mq",
                                          "sowa-http",
                                          "sowa-ws",
                                          "sowa-ufs",
                                          "sowa-kafka",
                                          "sowa-http-reversed"
                                        ]
                                      }
                                    },
                                    "custom_rules": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    }
                                  }
                                },
                                "validator_json": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "request": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "additionalProperties": false,
                                        "properties": {
                                          "default": {
                                            "description": "Specify the default rule",
                                            "type": "boolean"
                                          },
                                          "url": {
                                            "type": "string"
                                          },
                                          "method": {
                                            "type": "string",
                                            "enum": [
                                              "post",
                                              "put",
                                              "delete",
                                              "patch"
                                            ]
                                          },
                                          "params": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "additionalProperties": false,
                                              "properties": {
                                                "name": {
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                },
                                                "operator": {
                                                  "type": "string",
                                                  "enum": [
                                                    "=",
                                                    "!=",
                                                    "~",
                                                    "~*",
                                                    "!~",
                                                    "!~*"
                                                  ]
                                                },
                                                "pattern": {
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "name",
                                                "operator",
                                                "pattern"
                                              ]
                                            }
                                          },
                                          "allow_empty_body": {
                                            "description": "Specifies allow empty bodies or not.",
                                            "type": "boolean"
                                          },
                                          "allow_primitives_in_root": {
                                            "description": "Specifies allow primitives(integer/string/boolean/null) in root of json or allowed only JSONObject/JSONArray in root. Default - false",
                                            "type": "boolean"
                                          },
                                          "transforms": {
                                            "type": "array",
                                            "items": {
                                              "type": "string",
                                              "enum": [
                                                "PostFormDataToFlateJson"
                                              ]
                                            }
                                          },
                                          "schema": {
                                            "type": "string",
                                            "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                          }
                                        },
                                        "required": [
                                          "schema"
                                        ],
                                        "allOf": [
                                          {
                                            "if": {
                                              "type": "object",
                                              "required": [
                                                "default"
                                              ],
                                              "properties": {
                                                "default": {}
                                              }
                                            },
                                            "then": {
                                              "not": {
                                                "required": [
                                                  "url"
                                                ]
                                              }
                                            }
                                          },
                                          {
                                            "if": {
                                              "type": "object",
                                              "required": [
                                                "default"
                                              ],
                                              "properties": {
                                                "default": {}
                                              }
                                            },
                                            "then": {
                                              "not": {
                                                "required": [
                                                  "method"
                                                ]
                                              }
                                            }
                                          },
                                          {
                                            "if": {
                                              "type": "object",
                                              "required": [
                                                "default"
                                              ],
                                              "properties": {
                                                "default": {}
                                              }
                                            },
                                            "then": {
                                              "not": {
                                                "required": [
                                                  "params"
                                                ]
                                              }
                                            }
                                          },
                                          {
                                            "if": {
                                              "type": "object",
                                              "required": [
                                                "default"
                                              ],
                                              "properties": {
                                                "default": {}
                                              }
                                            },
                                            "then": {
                                              "not": {
                                                "required": [
                                                  "allow_empty_body"
                                                ]
                                              }
                                            }
                                          },
                                          {
                                            "if": {
                                              "type": "object",
                                              "required": [
                                                "default"
                                              ],
                                              "properties": {
                                                "default": {}
                                              }
                                            },
                                            "then": {
                                              "not": {
                                                "required": [
                                                  "allow_primitives_in_root"
                                                ]
                                              }
                                            }
                                          }
                                        ]
                                      }
                                    },
                                    "response": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "additionalProperties": false,
                                        "properties": {
                                          "default": {
                                            "description": "Specify the default rule",
                                            "type": "boolean"
                                          },
                                          "url": {
                                            "type": "string"
                                          },
                                          "method": {
                                            "type": "string",
                                            "enum": [
                                              "get",
                                              "post",
                                              "put",
                                              "delete",
                                              "patch"
                                            ]
                                          },
                                          "params": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "additionalProperties": false,
                                              "properties": {
                                                "name": {
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                },
                                                "operator": {
                                                  "type": "string",
                                                  "enum": [
                                                    "=",
                                                    "!=",
                                                    "~",
                                                    "~*",
                                                    "!~",
                                                    "!~*"
                                                  ]
                                                },
                                                "pattern": {
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "name",
                                                "operator",
                                                "pattern"
                                              ]
                                            }
                                          },
                                          "allow_empty_body": {
                                            "description": "Specifies allow empty bodies or not.",
                                            "type": "boolean"
                                          },
                                          "allow_primitives_in_root": {
                                            "description": "Specifies allow primitives(integer/string/boolean/null) in root of json or allowed only JSONObject/JSONArray in root. Default - false",
                                            "type": "boolean"
                                          },
                                          "transforms": {
                                            "type": "array",
                                            "items": {
                                              "type": "string",
                                              "enum": [
                                                "PostFormDataToFlateJson"
                                              ]
                                            }
                                          },
                                          "schema": {
                                            "type": "string",
                                            "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                          },
                                          "response_code": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "operator": {
                                                "type": "string",
                                                "enum": [
                                                  "=",
                                                  "!=",
                                                  "~",
                                                  "~*",
                                                  "!~",
                                                  "!~*"
                                                ]
                                              },
                                              "pattern": {
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "operator",
                                              "pattern"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "schema"
                                        ],
                                        "allOf": [
                                          {
                                            "if": {
                                              "type": "object",
                                              "required": [
                                                "default"
                                              ],
                                              "properties": {
                                                "default": {}
                                              }
                                            },
                                            "then": {
                                              "not": {
                                                "required": [
                                                  "url"
                                                ]
                                              }
                                            }
                                          },
                                          {
                                            "if": {
                                              "type": "object",
                                              "required": [
                                                "default"
                                              ],
                                              "properties": {
                                                "default": {}
                                              }
                                            },
                                            "then": {
                                              "not": {
                                                "required": [
                                                  "method"
                                                ]
                                              }
                                            }
                                          },
                                          {
                                            "if": {
                                              "type": "object",
                                              "required": [
                                                "default"
                                              ],
                                              "properties": {
                                                "default": {}
                                              }
                                            },
                                            "then": {
                                              "not": {
                                                "required": [
                                                  "params"
                                                ]
                                              }
                                            }
                                          },
                                          {
                                            "if": {
                                              "type": "object",
                                              "required": [
                                                "default"
                                              ],
                                              "properties": {
                                                "default": {}
                                              }
                                            },
                                            "then": {
                                              "not": {
                                                "required": [
                                                  "allow_empty_body"
                                                ]
                                              }
                                            }
                                          },
                                          {
                                            "if": {
                                              "type": "object",
                                              "required": [
                                                "default"
                                              ],
                                              "properties": {
                                                "default": {}
                                              }
                                            },
                                            "then": {
                                              "not": {
                                                "required": [
                                                  "allow_primitives_in_root"
                                                ]
                                              }
                                            }
                                          },
                                          {
                                            "if": {
                                              "type": "object",
                                              "required": [
                                                "default"
                                              ],
                                              "properties": {
                                                "default": {}
                                              }
                                            },
                                            "then": {
                                              "not": {
                                                "required": [
                                                  "response_code"
                                                ]
                                              }
                                            }
                                          }
                                        ]
                                      }
                                    },
                                    "response_proc_options": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "max_inmemory_size": {
                                          "type": [
                                            "number",
                                            "string"
                                          ],
                                          "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                        },
                                        "response_generation_type": {
                                          "description": "Defines how validator generate error response, when internal - using direct generation in java call, when external - native redirect to error page, by default internal",
                                          "type": "string",
                                          "enum": [
                                            "internal",
                                            "external"
                                          ]
                                        }
                                      }
                                    },
                                    "request_error_code": {
                                      "type": "integer"
                                    },
                                    "request_error_message": {
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    },
                                    "response_error_code": {
                                      "type": "integer"
                                    },
                                    "response_error_message": {
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    },
                                    "trailing_garbage_policy": {
                                      "type": "string",
                                      "enum": [
                                        "WEAK",
                                        "STANDARD",
                                        "STRONG"
                                      ]
                                    },
                                    "action_when_no_rule": {
                                      "description": "Defines behavior in case when request or response don't have apropriate rule to validate, if DENY - message blocked, if IGNORE - message processing continue By default - deny",
                                      "type": "string",
                                      "enum": [
                                        "ignore",
                                        "deny"
                                      ]
                                    },
                                    "action": {
                                      "description": "Defines behavior in case when request or response validation is failed, ignore - only log error, but request or response not blocked, deny - request/response blocked, by default - deny",
                                      "type": "string",
                                      "enum": [
                                        "ignore",
                                        "deny"
                                      ]
                                    }
                                  },
                                  "allOf": [
                                    {
                                      "if": {
                                        "type": "object",
                                        "required": [
                                          "response"
                                        ],
                                        "properties": {
                                          "response": {
                                            "pattern": ".+"
                                          }
                                        }
                                      },
                                      "else": {
                                        "not": {
                                          "required": [
                                            "response_proc_options"
                                          ]
                                        }
                                      }
                                    },
                                    {
                                      "if": {
                                        "type": "object",
                                        "required": [
                                          "request"
                                        ],
                                        "properties": {
                                          "request": {
                                            "pattern": ".+"
                                          }
                                        }
                                      },
                                      "else": {
                                        "not": {
                                          "required": [
                                            "request_error_code"
                                          ]
                                        }
                                      }
                                    },
                                    {
                                      "if": {
                                        "type": "object",
                                        "required": [
                                          "request"
                                        ],
                                        "properties": {
                                          "request": {
                                            "pattern": ".+"
                                          }
                                        }
                                      },
                                      "else": {
                                        "not": {
                                          "required": [
                                            "request_error_message"
                                          ]
                                        }
                                      }
                                    },
                                    {
                                      "if": {
                                        "type": "object",
                                        "required": [
                                          "response"
                                        ],
                                        "properties": {
                                          "response": {
                                            "pattern": ".+"
                                          }
                                        }
                                      },
                                      "else": {
                                        "not": {
                                          "required": [
                                            "response_error_code"
                                          ]
                                        }
                                      }
                                    },
                                    {
                                      "if": {
                                        "type": "object",
                                        "required": [
                                          "response"
                                        ],
                                        "properties": {
                                          "response": {
                                            "pattern": ".+"
                                          }
                                        }
                                      },
                                      "else": {
                                        "not": {
                                          "required": [
                                            "response_error_message"
                                          ]
                                        }
                                      }
                                    }
                                  ]
                                },
                                "validator_xsd": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "request": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "additionalProperties": false,
                                        "properties": {
                                          "default": {
                                            "description": "Specify the default rule",
                                            "type": "boolean"
                                          },
                                          "url": {
                                            "type": "string"
                                          },
                                          "method": {
                                            "type": "string",
                                            "enum": [
                                              "post",
                                              "put",
                                              "delete",
                                              "patch"
                                            ]
                                          },
                                          "params": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "additionalProperties": false,
                                              "properties": {
                                                "name": {
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                },
                                                "operator": {
                                                  "type": "string",
                                                  "enum": [
                                                    "=",
                                                    "!=",
                                                    "~",
                                                    "~*",
                                                    "!~",
                                                    "!~*"
                                                  ]
                                                },
                                                "pattern": {
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "name",
                                                "operator",
                                                "pattern"
                                              ]
                                            }
                                          },
                                          "transforms": {
                                            "type": "array",
                                            "items": {
                                              "type": "string",
                                              "enum": [
                                                "Base64Decode",
                                                "ASN1ContentExtractor"
                                              ]
                                            }
                                          },
                                          "schema": {
                                            "type": "string",
                                            "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                          },
                                          "wsdl": {
                                            "type": "boolean"
                                          },
                                          "default_wsdl_style": {
                                            "type": "string",
                                            "enum": [
                                              "document",
                                              "rpc"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "schema"
                                        ],
                                        "allOf": [
                                          {
                                            "if": {
                                              "type": "object",
                                              "required": [
                                                "default"
                                              ],
                                              "properties": {
                                                "default": {}
                                              }
                                            },
                                            "then": {
                                              "not": {
                                                "required": [
                                                  "url"
                                                ]
                                              }
                                            }
                                          },
                                          {
                                            "if": {
                                              "type": "object",
                                              "required": [
                                                "default"
                                              ],
                                              "properties": {
                                                "default": {}
                                              }
                                            },
                                            "then": {
                                              "not": {
                                                "required": [
                                                  "method"
                                                ]
                                              }
                                            }
                                          },
                                          {
                                            "if": {
                                              "type": "object",
                                              "required": [
                                                "default"
                                              ],
                                              "properties": {
                                                "default": {}
                                              }
                                            },
                                            "then": {
                                              "not": {
                                                "required": [
                                                  "params"
                                                ]
                                              }
                                            }
                                          },
                                          {
                                            "if": {
                                              "type": "object",
                                              "required": [
                                                "wsdl"
                                              ],
                                              "properties": {
                                                "wsdl": {
                                                  "const": false
                                                }
                                              }
                                            }
                                          }
                                        ]
                                      }
                                    },
                                    "request_limits": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "entityExpansionLimit": {
                                          "description": "Limit the number of entity expansions. Default - 64000",
                                          "type": "integer"
                                        },
                                        "elementAttributeLimit": {
                                          "description": "Limit the number of attributes an element can have. Default - 10000",
                                          "type": "integer"
                                        },
                                        "maxOccurLimit": {
                                          "description": "Limit the number of content model nodes that may be created when building a grammar for a W3C XML Schema that contains maxOccurs attributes with values other than \"unbounded\". Default - 5000",
                                          "type": "integer"
                                        },
                                        "totalEntitySizeLimit": {
                                          "description": "Limit the total size of all entities that include general and parameter entities. The size is calculated as an aggregation of all entities. Default - 50000000",
                                          "type": "integer"
                                        },
                                        "maxGeneralEntitySizeLimit": {
                                          "description": "Limit the maximum size of any general entities. Default - 0",
                                          "type": "integer"
                                        },
                                        "maxParameterEntitySizeLimit": {
                                          "description": "Limit the maximum size of any parameter entities, including the result of nesting multiple parameter entities. Default - 1000000",
                                          "type": "integer"
                                        },
                                        "entityReplacementLimit": {
                                          "description": "Limit the total number of nodes in all entity references. Default - 3000000",
                                          "type": "integer"
                                        },
                                        "maxElementDepth": {
                                          "description": "Limit the maximum element depth. Default - 0",
                                          "type": "integer"
                                        },
                                        "maxXMLNameLimit": {
                                          "description": "Limit the maximum size of XML names, including element name, attribute name and namespace prefix and URI. Default - 1000",
                                          "type": "integer"
                                        }
                                      }
                                    },
                                    "response": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "additionalProperties": false,
                                        "properties": {
                                          "default": {
                                            "description": "Specify the default rule",
                                            "type": "boolean"
                                          },
                                          "url": {
                                            "type": "string"
                                          },
                                          "method": {
                                            "type": "string",
                                            "enum": [
                                              "get",
                                              "post",
                                              "put",
                                              "delete",
                                              "patch"
                                            ]
                                          },
                                          "params": {
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "additionalProperties": false,
                                              "properties": {
                                                "name": {
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                },
                                                "operator": {
                                                  "type": "string",
                                                  "enum": [
                                                    "=",
                                                    "!=",
                                                    "~",
                                                    "~*",
                                                    "!~",
                                                    "!~*"
                                                  ]
                                                },
                                                "pattern": {
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "name",
                                                "operator",
                                                "pattern"
                                              ]
                                            }
                                          },
                                          "transforms": {
                                            "type": "array",
                                            "items": {
                                              "type": "string",
                                              "enum": [
                                                "Base64Decode",
                                                "ASN1ContentExtractor"
                                              ]
                                            }
                                          },
                                          "schema": {
                                            "type": "string",
                                            "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                          },
                                          "wsdl": {
                                            "type": "boolean"
                                          },
                                          "default_wsdl_style": {
                                            "type": "string",
                                            "enum": [
                                              "document",
                                              "rpc"
                                            ]
                                          },
                                          "response_code": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "operator": {
                                                "type": "string",
                                                "enum": [
                                                  "=",
                                                  "!=",
                                                  "~",
                                                  "~*",
                                                  "!~",
                                                  "!~*"
                                                ]
                                              },
                                              "pattern": {
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "operator",
                                              "pattern"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "schema"
                                        ],
                                        "allOf": [
                                          {
                                            "if": {
                                              "type": "object",
                                              "required": [
                                                "default"
                                              ],
                                              "properties": {
                                                "default": {}
                                              }
                                            },
                                            "then": {
                                              "not": {
                                                "required": [
                                                  "url"
                                                ]
                                              }
                                            }
                                          },
                                          {
                                            "if": {
                                              "type": "object",
                                              "required": [
                                                "default"
                                              ],
                                              "properties": {
                                                "default": {}
                                              }
                                            },
                                            "then": {
                                              "not": {
                                                "required": [
                                                  "method"
                                                ]
                                              }
                                            }
                                          },
                                          {
                                            "if": {
                                              "type": "object",
                                              "required": [
                                                "default"
                                              ],
                                              "properties": {
                                                "default": {}
                                              }
                                            },
                                            "then": {
                                              "not": {
                                                "required": [
                                                  "params"
                                                ]
                                              }
                                            }
                                          },
                                          {
                                            "if": {
                                              "type": "object",
                                              "required": [
                                                "wsdl"
                                              ],
                                              "properties": {
                                                "wsdl": {
                                                  "const": false
                                                }
                                              }
                                            }
                                          },
                                          {
                                            "if": {
                                              "type": "object",
                                              "required": [
                                                "default"
                                              ],
                                              "properties": {
                                                "default": {}
                                              }
                                            },
                                            "then": {
                                              "not": {
                                                "required": [
                                                  "response_code"
                                                ]
                                              }
                                            }
                                          }
                                        ]
                                      }
                                    },
                                    "response_limits": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "entityExpansionLimit": {
                                          "description": "Limit the number of entity expansions. Default - 64000",
                                          "type": "integer"
                                        },
                                        "elementAttributeLimit": {
                                          "description": "Limit the number of attributes an element can have. Default - 10000",
                                          "type": "integer"
                                        },
                                        "maxOccurLimit": {
                                          "description": "Limit the number of content model nodes that may be created when building a grammar for a W3C XML Schema that contains maxOccurs attributes with values other than \"unbounded\". Default - 5000",
                                          "type": "integer"
                                        },
                                        "totalEntitySizeLimit": {
                                          "description": "Limit the total size of all entities that include general and parameter entities. The size is calculated as an aggregation of all entities. Default - 50000000",
                                          "type": "integer"
                                        },
                                        "maxGeneralEntitySizeLimit": {
                                          "description": "Limit the maximum size of any general entities. Default - 0",
                                          "type": "integer"
                                        },
                                        "maxParameterEntitySizeLimit": {
                                          "description": "Limit the maximum size of any parameter entities, including the result of nesting multiple parameter entities. Default - 1000000",
                                          "type": "integer"
                                        },
                                        "entityReplacementLimit": {
                                          "description": "Limit the total number of nodes in all entity references. Default - 3000000",
                                          "type": "integer"
                                        },
                                        "maxElementDepth": {
                                          "description": "Limit the maximum element depth. Default - 0",
                                          "type": "integer"
                                        },
                                        "maxXMLNameLimit": {
                                          "description": "Limit the maximum size of XML names, including element name, attribute name and namespace prefix and URI. Default - 1000",
                                          "type": "integer"
                                        }
                                      }
                                    },
                                    "response_proc_options": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "max_inmemory_size": {
                                          "type": [
                                            "number",
                                            "string"
                                          ],
                                          "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                        },
                                        "response_generation_type": {
                                          "description": "Defines how validator generate error response, when internal - using direct generation in java call, when external - native redirect to error page, by default internal",
                                          "type": "string",
                                          "enum": [
                                            "internal",
                                            "external"
                                          ]
                                        }
                                      }
                                    },
                                    "request_error_code": {
                                      "type": "integer"
                                    },
                                    "request_error_message": {
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    },
                                    "response_error_code": {
                                      "type": "integer"
                                    },
                                    "response_error_message": {
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    },
                                    "action_when_no_rule": {
                                      "description": "Defines behavior in case when request or response don't have apropriate rule to validate, if DENY - message blocked, if IGNORE - message processing continue By default - deny",
                                      "type": "string",
                                      "enum": [
                                        "ignore",
                                        "deny"
                                      ]
                                    },
                                    "action": {
                                      "description": "Defines behavior in case when request or response validation is failed, ignore - only log error, but request or response not blocked, deny - request/response blocked, by default - deny",
                                      "type": "string",
                                      "enum": [
                                        "ignore",
                                        "deny"
                                      ]
                                    }
                                  },
                                  "allOf": [
                                    {
                                      "if": {
                                        "type": "object",
                                        "required": [
                                          "request"
                                        ],
                                        "properties": {
                                          "request": {
                                            "pattern": ".+"
                                          }
                                        }
                                      },
                                      "else": {
                                        "not": {
                                          "required": [
                                            "request_limits"
                                          ]
                                        }
                                      }
                                    },
                                    {
                                      "if": {
                                        "type": "object",
                                        "required": [
                                          "response"
                                        ],
                                        "properties": {
                                          "response": {
                                            "pattern": ".+"
                                          }
                                        }
                                      },
                                      "else": {
                                        "not": {
                                          "required": [
                                            "response_limits"
                                          ]
                                        }
                                      }
                                    },
                                    {
                                      "if": {
                                        "type": "object",
                                        "required": [
                                          "response"
                                        ],
                                        "properties": {
                                          "response": {
                                            "pattern": ".+"
                                          }
                                        }
                                      },
                                      "else": {
                                        "not": {
                                          "required": [
                                            "response_proc_options"
                                          ]
                                        }
                                      }
                                    },
                                    {
                                      "if": {
                                        "type": "object",
                                        "required": [
                                          "request"
                                        ],
                                        "properties": {
                                          "request": {
                                            "pattern": ".+"
                                          }
                                        }
                                      },
                                      "else": {
                                        "not": {
                                          "required": [
                                            "request_error_code"
                                          ]
                                        }
                                      }
                                    },
                                    {
                                      "if": {
                                        "type": "object",
                                        "required": [
                                          "request"
                                        ],
                                        "properties": {
                                          "request": {
                                            "pattern": ".+"
                                          }
                                        }
                                      },
                                      "else": {
                                        "not": {
                                          "required": [
                                            "request_error_message"
                                          ]
                                        }
                                      }
                                    },
                                    {
                                      "if": {
                                        "type": "object",
                                        "required": [
                                          "response"
                                        ],
                                        "properties": {
                                          "response": {
                                            "pattern": ".+"
                                          }
                                        }
                                      },
                                      "else": {
                                        "not": {
                                          "required": [
                                            "response_error_code"
                                          ]
                                        }
                                      }
                                    },
                                    {
                                      "if": {
                                        "type": "object",
                                        "required": [
                                          "response"
                                        ],
                                        "properties": {
                                          "response": {
                                            "pattern": ".+"
                                          }
                                        }
                                      },
                                      "else": {
                                        "not": {
                                          "required": [
                                            "response_error_message"
                                          ]
                                        }
                                      }
                                    }
                                  ]
                                },
                                "chains": {
                                  "description": "The action bus",
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "request_chains": {
                                      "description": "Specifies chain of actions for the request.",
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "additionalProperties": false,
                                        "properties": {
                                          "message": {
                                            "description": "Text for analysis. May contain variables. E.g. $shared_request_body",
                                            "type": [
                                              "number",
                                              "string"
                                            ]
                                          },
                                          "phase": {
                                            "description": "The phase at which actions form \"action_list\" will be executed. Default is access.",
                                            "type": [
                                              "number",
                                              "string"
                                            ],
                                            "enum": [
                                              "rewrite",
                                              "access"
                                            ]
                                          },
                                          "trace_config": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "enableAllActions": {
                                                "description": "enable tracing of all actions in chains",
                                                "type": "boolean"
                                              },
                                              "enableAllChains": {
                                                "description": "enable tracing of all actions in child chains",
                                                "type": "boolean"
                                              },
                                              "mode": {
                                                "description": "Enable or disable tracing at this level.",
                                                "type": "object",
                                                "additionalProperties": false,
                                                "properties": {
                                                  "enabled": {
                                                    "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                    "type": [
                                                      "number",
                                                      "string"
                                                    ],
                                                    "enum": [
                                                      "on",
                                                      "off",
                                                      "var_based"
                                                    ]
                                                  },
                                                  "var": {
                                                    "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                    "type": [
                                                      "number",
                                                      "string"
                                                    ]
                                                  }
                                                }
                                              },
                                              "spanAttributes": {
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "name": {
                                                      "description": "name of attribute",
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "value": {
                                                      "description": "value of attribute, can contain variables",
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    }
                                                  }
                                                }
                                              },
                                              "spanName": {
                                                "description": "Specify name of span",
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              },
                                              "enableSocketsTracing": {
                                                "description": "Enable or disable socket tracing, by default enabled",
                                                "type": "boolean"
                                              }
                                            }
                                          },
                                          "requiredChildOneOf": {
                                            "description": "Specifies unverifed action check",
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "decision": {
                                                "type": [
                                                  "number",
                                                  "string"
                                                ],
                                                "enum": [
                                                  "BLOCK",
                                                  "WARN"
                                                ]
                                              },
                                              "onlyCheckers": {
                                                "type": "boolean"
                                              },
                                              "include": {
                                                "type": "array",
                                                "items": {
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                }
                                              },
                                              "exclude": {
                                                "type": "array",
                                                "items": {
                                                  "type": "string"
                                                }
                                              }
                                            },
                                            "required": [
                                              "decision"
                                            ],
                                            "allOf": [
                                              {
                                                "if": {
                                                  "type": "object",
                                                  "required": [
                                                    "exclude"
                                                  ],
                                                  "properties": {
                                                    "exclude": {}
                                                  }
                                                },
                                                "then": {
                                                  "not": {
                                                    "required": [
                                                      "include"
                                                    ]
                                                  }
                                                }
                                              },
                                              {
                                                "if": {
                                                  "type": "object",
                                                  "required": [
                                                    "include"
                                                  ],
                                                  "properties": {
                                                    "include": {}
                                                  }
                                                },
                                                "then": {
                                                  "not": {
                                                    "required": [
                                                      "exclude"
                                                    ]
                                                  }
                                                }
                                              }
                                            ]
                                          },
                                          "actions": {
                                            "description": "Specifies a list of actions.",
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "additionalProperties": false,
                                              "properties": {
                                                "action": {
                                                  "description": "Specifies an action to perform",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ],
                                                  "enum": [
                                                    "ASN1ContentExtractor",
                                                    "Base64Decode",
                                                    "ConditionChecker",
                                                    "CheckDataSize",
                                                    "CheckMimeType",
                                                    "JsonPathExtract",
                                                    "JsonPathExtractToVars",
                                                    "JsonValidation",
                                                    "XsdValidation",
                                                    "PostFormDataToFlateJson",
                                                    "MultipartExtract",
                                                    "SetMessageFromVar",
                                                    "SetVarFromMessage",
                                                    "JwsToJson",
                                                    "XPathExtract",
                                                    "XPathExtractToVars",
                                                    "SharedMapDeleter",
                                                    "SharedMapRemover",
                                                    "SharedMapSetter",
                                                    "SharedMapGetter",
                                                    "RandomNumberToVar",
                                                    "VarsToSharedMap",
                                                    "SharedMapToVars",
                                                    "AntivirusFileChecker",
                                                    "MtomExtractor",
                                                    "JsonTransformer",
                                                    "SetVar",
                                                    "GraphQLRequestValidation",
                                                    "ProtobufValidation",
                                                    "OpenApiValidation",
                                                    "DelimiterSplitter",
                                                    "VarsToFile",
                                                    "FileToVars",
                                                    "WsdlValidation",
                                                    "HttpFilter",
                                                    "ProtobufToJson",
                                                    "FilterMds",
                                                    "OcspSignValidator",
                                                    "OcspToJson",
                                                    "ASN1ToJson",
                                                    "XmlTransformer",
                                                    "UrlEncode",
                                                    "UrlDecodeUni",
                                                    "UrlDecode",
                                                    "HexDecode",
                                                    "HexEncode",
                                                    "ToLowerCase",
                                                    "ToUpperCase",
                                                    "Utf8ToUnicode",
                                                    "Trim",
                                                    "ICAPFileChecker",
                                                    "MessageToFile",
                                                    "MultipartFormGenerateFromVar",
                                                    "HttpSender",
                                                    "MessageAccumulator",
                                                    "MessageFromAccumulator",
                                                    "MessageFromPattern",
                                                    "MultipartFormGenerateFromMessage",
                                                    "JsonPatchMessage",
                                                    "JsonPatchVar",
                                                    "DigestFromMessage",
                                                    "Base64Encode",
                                                    "HMac",
                                                    "FileToMessage",
                                                    "JwtVerifier",
                                                    "CharsetChecker",
                                                    "LdapSearch",
                                                    "UnicodeDecode",
                                                    "MessageMapper",
                                                    "SimpleRateLimiter",
                                                    "EventSourceConverter",
                                                    "LazySessionTimeChecker",
                                                    "CalculateMessageProperties"
                                                  ]
                                                },
                                                "id": {
                                                  "description": "An identificator of action",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                },
                                                "conditions": {
                                                  "description": "Specifies the conditions for performina an action.",
                                                  "type": "array",
                                                  "items": {
                                                    "type": "object",
                                                    "additionalProperties": false,
                                                    "properties": {
                                                      "var": {
                                                        "description": "Specifies a variable to check.",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ]
                                                      },
                                                      "operator": {
                                                        "description": "Specifies an operator.",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ],
                                                        "enum": [
                                                          "=",
                                                          "!=",
                                                          "<=",
                                                          ">=",
                                                          ">",
                                                          "<",
                                                          "in",
                                                          "not_in",
                                                          "~",
                                                          "~*",
                                                          "!~",
                                                          "!~*",
                                                          "ip_range",
                                                          "!ip_range",
                                                          "dn_mask",
                                                          "!dn_mask"
                                                        ]
                                                      },
                                                      "val": {
                                                        "description": "Specifies a value to check.",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "var",
                                                      "operator",
                                                      "val"
                                                    ]
                                                  }
                                                },
                                                "trace_config": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "enableAllActions": {
                                                      "description": "enable tracing of all actions in chains",
                                                      "type": "boolean"
                                                    },
                                                    "enableAllChains": {
                                                      "description": "enable tracing of all actions in child chains",
                                                      "type": "boolean"
                                                    },
                                                    "mode": {
                                                      "description": "Enable or disable tracing at this level.",
                                                      "type": "object",
                                                      "additionalProperties": false,
                                                      "properties": {
                                                        "enabled": {
                                                          "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                          "type": [
                                                            "number",
                                                            "string"
                                                          ],
                                                          "enum": [
                                                            "on",
                                                            "off",
                                                            "var_based"
                                                          ]
                                                        },
                                                        "var": {
                                                          "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                          "type": [
                                                            "number",
                                                            "string"
                                                          ]
                                                        }
                                                      }
                                                    },
                                                    "spanAttributes": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "name": {
                                                            "description": "name of attribute",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "value": {
                                                            "description": "value of attribute, can contain variables",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          }
                                                        }
                                                      }
                                                    },
                                                    "spanName": {
                                                      "description": "Specify name of span",
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "enableSocketsTracing": {
                                                      "description": "Enable or disable socket tracing, by default enabled",
                                                      "type": "boolean"
                                                    }
                                                  }
                                                },
                                                "params": {
                                                  "description": "Specifies extra parameters for the actions.",
                                                  "type": "object",
                                                  "additionalProperties": true
                                                },
                                                "requiredChildOneOf": {
                                                  "description": "Specifies unverifed action check",
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "decision": {
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ],
                                                      "enum": [
                                                        "BLOCK",
                                                        "WARN"
                                                      ]
                                                    },
                                                    "onlyCheckers": {
                                                      "type": "boolean"
                                                    },
                                                    "include": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ]
                                                      }
                                                    },
                                                    "exclude": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "string"
                                                      }
                                                    }
                                                  },
                                                  "required": [
                                                    "decision"
                                                  ],
                                                  "allOf": [
                                                    {
                                                      "if": {
                                                        "type": "object",
                                                        "required": [
                                                          "exclude"
                                                        ],
                                                        "properties": {
                                                          "exclude": {}
                                                        }
                                                      },
                                                      "then": {
                                                        "not": {
                                                          "required": [
                                                            "include"
                                                          ]
                                                        }
                                                      }
                                                    },
                                                    {
                                                      "if": {
                                                        "type": "object",
                                                        "required": [
                                                          "include"
                                                        ],
                                                        "properties": {
                                                          "include": {}
                                                        }
                                                      },
                                                      "then": {
                                                        "not": {
                                                          "required": [
                                                            "exclude"
                                                          ]
                                                        }
                                                      }
                                                    }
                                                  ]
                                                },
                                                "actions": {
                                                  "description": "Specifies a list of actions.",
                                                  "type": "array",
                                                  "items": {
                                                    "type": "object",
                                                    "additionalProperties": false,
                                                    "properties": {
                                                      "action": {
                                                        "description": "Specifies an action to perform",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ],
                                                        "enum": [
                                                          "ASN1ContentExtractor",
                                                          "Base64Decode",
                                                          "ConditionChecker",
                                                          "CheckDataSize",
                                                          "CheckMimeType",
                                                          "JsonPathExtract",
                                                          "JsonPathExtractToVars",
                                                          "JsonValidation",
                                                          "XsdValidation",
                                                          "PostFormDataToFlateJson",
                                                          "MultipartExtract",
                                                          "SetMessageFromVar",
                                                          "SetVarFromMessage",
                                                          "JwsToJson",
                                                          "XPathExtract",
                                                          "XPathExtractToVars",
                                                          "SharedMapDeleter",
                                                          "SharedMapRemover",
                                                          "SharedMapSetter",
                                                          "SharedMapGetter",
                                                          "RandomNumberToVar",
                                                          "VarsToSharedMap",
                                                          "SharedMapToVars",
                                                          "AntivirusFileChecker",
                                                          "MtomExtractor",
                                                          "JsonTransformer",
                                                          "SetVar",
                                                          "GraphQLRequestValidation",
                                                          "ProtobufValidation",
                                                          "OpenApiValidation",
                                                          "DelimiterSplitter",
                                                          "VarsToFile",
                                                          "FileToVars",
                                                          "WsdlValidation",
                                                          "HttpFilter",
                                                          "ProtobufToJson",
                                                          "FilterMds",
                                                          "OcspSignValidator",
                                                          "OcspToJson",
                                                          "ASN1ToJson",
                                                          "XmlTransformer",
                                                          "UrlEncode",
                                                          "UrlDecodeUni",
                                                          "UrlDecode",
                                                          "HexDecode",
                                                          "HexEncode",
                                                          "ToLowerCase",
                                                          "ToUpperCase",
                                                          "Utf8ToUnicode",
                                                          "Trim",
                                                          "ICAPFileChecker",
                                                          "MessageToFile",
                                                          "MultipartFormGenerateFromVar",
                                                          "HttpSender",
                                                          "MessageAccumulator",
                                                          "MessageFromAccumulator",
                                                          "MessageFromPattern",
                                                          "MultipartFormGenerateFromMessage",
                                                          "JsonPatchMessage",
                                                          "JsonPatchVar",
                                                          "DigestFromMessage",
                                                          "Base64Encode",
                                                          "HMac",
                                                          "FileToMessage",
                                                          "JwtVerifier",
                                                          "CharsetChecker",
                                                          "LdapSearch",
                                                          "UnicodeDecode",
                                                          "MessageMapper",
                                                          "SimpleRateLimiter",
                                                          "EventSourceConverter",
                                                          "LazySessionTimeChecker",
                                                          "CalculateMessageProperties"
                                                        ]
                                                      },
                                                      "id": {
                                                        "description": "An identificator of action",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ]
                                                      },
                                                      "conditions": {
                                                        "description": "Specifies the conditions for performina an action.",
                                                        "type": "array",
                                                        "items": {
                                                          "type": "object",
                                                          "additionalProperties": false,
                                                          "properties": {
                                                            "var": {
                                                              "description": "Specifies a variable to check.",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ]
                                                            },
                                                            "operator": {
                                                              "description": "Specifies an operator.",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ],
                                                              "enum": [
                                                                "=",
                                                                "!=",
                                                                "<=",
                                                                ">=",
                                                                ">",
                                                                "<",
                                                                "in",
                                                                "not_in",
                                                                "~",
                                                                "~*",
                                                                "!~",
                                                                "!~*",
                                                                "ip_range",
                                                                "!ip_range",
                                                                "dn_mask",
                                                                "!dn_mask"
                                                              ]
                                                            },
                                                            "val": {
                                                              "description": "Specifies a value to check.",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ]
                                                            }
                                                          },
                                                          "required": [
                                                            "var",
                                                            "operator",
                                                            "val"
                                                          ]
                                                        }
                                                      },
                                                      "trace_config": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "enableAllActions": {
                                                            "description": "enable tracing of all actions in chains",
                                                            "type": "boolean"
                                                          },
                                                          "enableAllChains": {
                                                            "description": "enable tracing of all actions in child chains",
                                                            "type": "boolean"
                                                          },
                                                          "mode": {
                                                            "description": "Enable or disable tracing at this level.",
                                                            "type": "object",
                                                            "additionalProperties": false,
                                                            "properties": {
                                                              "enabled": {
                                                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                "type": [
                                                                  "number",
                                                                  "string"
                                                                ],
                                                                "enum": [
                                                                  "on",
                                                                  "off",
                                                                  "var_based"
                                                                ]
                                                              },
                                                              "var": {
                                                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                "type": [
                                                                  "number",
                                                                  "string"
                                                                ]
                                                              }
                                                            }
                                                          },
                                                          "spanAttributes": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "name": {
                                                                  "description": "name of attribute",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "value": {
                                                                  "description": "value of attribute, can contain variables",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                }
                                                              }
                                                            }
                                                          },
                                                          "spanName": {
                                                            "description": "Specify name of span",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "enableSocketsTracing": {
                                                            "description": "Enable or disable socket tracing, by default enabled",
                                                            "type": "boolean"
                                                          }
                                                        }
                                                      },
                                                      "params": {
                                                        "description": "Specifies extra parameters for the actions.",
                                                        "type": "object",
                                                        "additionalProperties": true
                                                      },
                                                      "requiredChildOneOf": {
                                                        "description": "Specifies unverifed action check",
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "decision": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ],
                                                            "enum": [
                                                              "BLOCK",
                                                              "WARN"
                                                            ]
                                                          },
                                                          "onlyCheckers": {
                                                            "type": "boolean"
                                                          },
                                                          "include": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ]
                                                            }
                                                          },
                                                          "exclude": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "decision"
                                                        ],
                                                        "allOf": [
                                                          {
                                                            "if": {
                                                              "type": "object",
                                                              "required": [
                                                                "exclude"
                                                              ],
                                                              "properties": {
                                                                "exclude": {}
                                                              }
                                                            },
                                                            "then": {
                                                              "not": {
                                                                "required": [
                                                                  "include"
                                                                ]
                                                              }
                                                            }
                                                          },
                                                          {
                                                            "if": {
                                                              "type": "object",
                                                              "required": [
                                                                "include"
                                                              ],
                                                              "properties": {
                                                                "include": {}
                                                              }
                                                            },
                                                            "then": {
                                                              "not": {
                                                                "required": [
                                                                  "exclude"
                                                                ]
                                                              }
                                                            }
                                                          }
                                                        ]
                                                      },
                                                      "actions": {
                                                        "description": "Specifies a list of actions.",
                                                        "type": "array",
                                                        "items": {
                                                          "type": "object",
                                                          "additionalProperties": false,
                                                          "properties": {
                                                            "action": {
                                                              "description": "Specifies an action to perform",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ],
                                                              "enum": [
                                                                "ASN1ContentExtractor",
                                                                "Base64Decode",
                                                                "ConditionChecker",
                                                                "CheckDataSize",
                                                                "CheckMimeType",
                                                                "JsonPathExtract",
                                                                "JsonPathExtractToVars",
                                                                "JsonValidation",
                                                                "XsdValidation",
                                                                "PostFormDataToFlateJson",
                                                                "MultipartExtract",
                                                                "SetMessageFromVar",
                                                                "SetVarFromMessage",
                                                                "JwsToJson",
                                                                "XPathExtract",
                                                                "XPathExtractToVars",
                                                                "SharedMapDeleter",
                                                                "SharedMapRemover",
                                                                "SharedMapSetter",
                                                                "SharedMapGetter",
                                                                "RandomNumberToVar",
                                                                "VarsToSharedMap",
                                                                "SharedMapToVars",
                                                                "AntivirusFileChecker",
                                                                "MtomExtractor",
                                                                "JsonTransformer",
                                                                "SetVar",
                                                                "GraphQLRequestValidation",
                                                                "ProtobufValidation",
                                                                "OpenApiValidation",
                                                                "DelimiterSplitter",
                                                                "VarsToFile",
                                                                "FileToVars",
                                                                "WsdlValidation",
                                                                "HttpFilter",
                                                                "ProtobufToJson",
                                                                "FilterMds",
                                                                "OcspSignValidator",
                                                                "OcspToJson",
                                                                "ASN1ToJson",
                                                                "XmlTransformer",
                                                                "UrlEncode",
                                                                "UrlDecodeUni",
                                                                "UrlDecode",
                                                                "HexDecode",
                                                                "HexEncode",
                                                                "ToLowerCase",
                                                                "ToUpperCase",
                                                                "Utf8ToUnicode",
                                                                "Trim",
                                                                "ICAPFileChecker",
                                                                "MessageToFile",
                                                                "MultipartFormGenerateFromVar",
                                                                "HttpSender",
                                                                "MessageAccumulator",
                                                                "MessageFromAccumulator",
                                                                "MessageFromPattern",
                                                                "MultipartFormGenerateFromMessage",
                                                                "JsonPatchMessage",
                                                                "JsonPatchVar",
                                                                "DigestFromMessage",
                                                                "Base64Encode",
                                                                "HMac",
                                                                "FileToMessage",
                                                                "JwtVerifier",
                                                                "CharsetChecker",
                                                                "LdapSearch",
                                                                "UnicodeDecode",
                                                                "MessageMapper",
                                                                "SimpleRateLimiter",
                                                                "EventSourceConverter",
                                                                "LazySessionTimeChecker",
                                                                "CalculateMessageProperties"
                                                              ]
                                                            },
                                                            "id": {
                                                              "description": "An identificator of action",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ]
                                                            },
                                                            "conditions": {
                                                              "description": "Specifies the conditions for performina an action.",
                                                              "type": "array",
                                                              "items": {
                                                                "type": "object",
                                                                "additionalProperties": false,
                                                                "properties": {
                                                                  "var": {
                                                                    "description": "Specifies a variable to check.",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ]
                                                                  },
                                                                  "operator": {
                                                                    "description": "Specifies an operator.",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ],
                                                                    "enum": [
                                                                      "=",
                                                                      "!=",
                                                                      "<=",
                                                                      ">=",
                                                                      ">",
                                                                      "<",
                                                                      "in",
                                                                      "not_in",
                                                                      "~",
                                                                      "~*",
                                                                      "!~",
                                                                      "!~*",
                                                                      "ip_range",
                                                                      "!ip_range",
                                                                      "dn_mask",
                                                                      "!dn_mask"
                                                                    ]
                                                                  },
                                                                  "val": {
                                                                    "description": "Specifies a value to check.",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ]
                                                                  }
                                                                },
                                                                "required": [
                                                                  "var",
                                                                  "operator",
                                                                  "val"
                                                                ]
                                                              }
                                                            },
                                                            "trace_config": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "enableAllActions": {
                                                                  "description": "enable tracing of all actions in chains",
                                                                  "type": "boolean"
                                                                },
                                                                "enableAllChains": {
                                                                  "description": "enable tracing of all actions in child chains",
                                                                  "type": "boolean"
                                                                },
                                                                "mode": {
                                                                  "description": "Enable or disable tracing at this level.",
                                                                  "type": "object",
                                                                  "additionalProperties": false,
                                                                  "properties": {
                                                                    "enabled": {
                                                                      "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                      "type": [
                                                                        "number",
                                                                        "string"
                                                                      ],
                                                                      "enum": [
                                                                        "on",
                                                                        "off",
                                                                        "var_based"
                                                                      ]
                                                                    },
                                                                    "var": {
                                                                      "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                      "type": [
                                                                        "number",
                                                                        "string"
                                                                      ]
                                                                    }
                                                                  }
                                                                },
                                                                "spanAttributes": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "name": {
                                                                        "description": "name of attribute",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "value": {
                                                                        "description": "value of attribute, can contain variables",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      }
                                                                    }
                                                                  }
                                                                },
                                                                "spanName": {
                                                                  "description": "Specify name of span",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "enableSocketsTracing": {
                                                                  "description": "Enable or disable socket tracing, by default enabled",
                                                                  "type": "boolean"
                                                                }
                                                              }
                                                            },
                                                            "params": {
                                                              "description": "Specifies extra parameters for the actions.",
                                                              "type": "object",
                                                              "additionalProperties": true
                                                            },
                                                            "requiredChildOneOf": {
                                                              "description": "Specifies unverifed action check",
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "decision": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ],
                                                                  "enum": [
                                                                    "BLOCK",
                                                                    "WARN"
                                                                  ]
                                                                },
                                                                "onlyCheckers": {
                                                                  "type": "boolean"
                                                                },
                                                                "include": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ]
                                                                  }
                                                                },
                                                                "exclude": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "string"
                                                                  }
                                                                }
                                                              },
                                                              "required": [
                                                                "decision"
                                                              ],
                                                              "allOf": [
                                                                {
                                                                  "if": {
                                                                    "type": "object",
                                                                    "required": [
                                                                      "exclude"
                                                                    ],
                                                                    "properties": {
                                                                      "exclude": {}
                                                                    }
                                                                  },
                                                                  "then": {
                                                                    "not": {
                                                                      "required": [
                                                                        "include"
                                                                      ]
                                                                    }
                                                                  }
                                                                },
                                                                {
                                                                  "if": {
                                                                    "type": "object",
                                                                    "required": [
                                                                      "include"
                                                                    ],
                                                                    "properties": {
                                                                      "include": {}
                                                                    }
                                                                  },
                                                                  "then": {
                                                                    "not": {
                                                                      "required": [
                                                                        "exclude"
                                                                      ]
                                                                    }
                                                                  }
                                                                }
                                                              ]
                                                            },
                                                            "actions": {
                                                              "description": "Specifies a list of actions.",
                                                              "type": "array",
                                                              "items": {
                                                                "type": "object",
                                                                "additionalProperties": false,
                                                                "properties": {
                                                                  "action": {
                                                                    "description": "Specifies an action to perform",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ],
                                                                    "enum": [
                                                                      "ASN1ContentExtractor",
                                                                      "Base64Decode",
                                                                      "ConditionChecker",
                                                                      "CheckDataSize",
                                                                      "CheckMimeType",
                                                                      "JsonPathExtract",
                                                                      "JsonPathExtractToVars",
                                                                      "JsonValidation",
                                                                      "XsdValidation",
                                                                      "PostFormDataToFlateJson",
                                                                      "MultipartExtract",
                                                                      "SetMessageFromVar",
                                                                      "SetVarFromMessage",
                                                                      "JwsToJson",
                                                                      "XPathExtract",
                                                                      "XPathExtractToVars",
                                                                      "SharedMapDeleter",
                                                                      "SharedMapRemover",
                                                                      "SharedMapSetter",
                                                                      "SharedMapGetter",
                                                                      "RandomNumberToVar",
                                                                      "VarsToSharedMap",
                                                                      "SharedMapToVars",
                                                                      "AntivirusFileChecker",
                                                                      "MtomExtractor",
                                                                      "JsonTransformer",
                                                                      "SetVar",
                                                                      "GraphQLRequestValidation",
                                                                      "ProtobufValidation",
                                                                      "OpenApiValidation",
                                                                      "DelimiterSplitter",
                                                                      "VarsToFile",
                                                                      "FileToVars",
                                                                      "WsdlValidation",
                                                                      "HttpFilter",
                                                                      "ProtobufToJson",
                                                                      "FilterMds",
                                                                      "OcspSignValidator",
                                                                      "OcspToJson",
                                                                      "ASN1ToJson",
                                                                      "XmlTransformer",
                                                                      "UrlEncode",
                                                                      "UrlDecodeUni",
                                                                      "UrlDecode",
                                                                      "HexDecode",
                                                                      "HexEncode",
                                                                      "ToLowerCase",
                                                                      "ToUpperCase",
                                                                      "Utf8ToUnicode",
                                                                      "Trim",
                                                                      "ICAPFileChecker",
                                                                      "MessageToFile",
                                                                      "MultipartFormGenerateFromVar",
                                                                      "HttpSender",
                                                                      "MessageAccumulator",
                                                                      "MessageFromAccumulator",
                                                                      "MessageFromPattern",
                                                                      "MultipartFormGenerateFromMessage",
                                                                      "JsonPatchMessage",
                                                                      "JsonPatchVar",
                                                                      "DigestFromMessage",
                                                                      "Base64Encode",
                                                                      "HMac",
                                                                      "FileToMessage",
                                                                      "JwtVerifier",
                                                                      "CharsetChecker",
                                                                      "LdapSearch",
                                                                      "UnicodeDecode",
                                                                      "MessageMapper",
                                                                      "SimpleRateLimiter",
                                                                      "EventSourceConverter",
                                                                      "LazySessionTimeChecker",
                                                                      "CalculateMessageProperties"
                                                                    ]
                                                                  },
                                                                  "id": {
                                                                    "description": "An identificator of action",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ]
                                                                  },
                                                                  "conditions": {
                                                                    "description": "Specifies the conditions for performina an action.",
                                                                    "type": "array",
                                                                    "items": {
                                                                      "type": "object",
                                                                      "additionalProperties": false,
                                                                      "properties": {
                                                                        "var": {
                                                                          "description": "Specifies a variable to check.",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ]
                                                                        },
                                                                        "operator": {
                                                                          "description": "Specifies an operator.",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ],
                                                                          "enum": [
                                                                            "=",
                                                                            "!=",
                                                                            "<=",
                                                                            ">=",
                                                                            ">",
                                                                            "<",
                                                                            "in",
                                                                            "not_in",
                                                                            "~",
                                                                            "~*",
                                                                            "!~",
                                                                            "!~*",
                                                                            "ip_range",
                                                                            "!ip_range",
                                                                            "dn_mask",
                                                                            "!dn_mask"
                                                                          ]
                                                                        },
                                                                        "val": {
                                                                          "description": "Specifies a value to check.",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "required": [
                                                                        "var",
                                                                        "operator",
                                                                        "val"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "trace_config": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "enableAllActions": {
                                                                        "description": "enable tracing of all actions in chains",
                                                                        "type": "boolean"
                                                                      },
                                                                      "enableAllChains": {
                                                                        "description": "enable tracing of all actions in child chains",
                                                                        "type": "boolean"
                                                                      },
                                                                      "mode": {
                                                                        "description": "Enable or disable tracing at this level.",
                                                                        "type": "object",
                                                                        "additionalProperties": false,
                                                                        "properties": {
                                                                          "enabled": {
                                                                            "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                            "type": [
                                                                              "number",
                                                                              "string"
                                                                            ],
                                                                            "enum": [
                                                                              "on",
                                                                              "off",
                                                                              "var_based"
                                                                            ]
                                                                          },
                                                                          "var": {
                                                                            "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                            "type": [
                                                                              "number",
                                                                              "string"
                                                                            ]
                                                                          }
                                                                        }
                                                                      },
                                                                      "spanAttributes": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "name": {
                                                                              "description": "name of attribute",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "value": {
                                                                              "description": "value of attribute, can contain variables",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            }
                                                                          }
                                                                        }
                                                                      },
                                                                      "spanName": {
                                                                        "description": "Specify name of span",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "enableSocketsTracing": {
                                                                        "description": "Enable or disable socket tracing, by default enabled",
                                                                        "type": "boolean"
                                                                      }
                                                                    }
                                                                  },
                                                                  "params": {
                                                                    "description": "Specifies extra parameters for the actions.",
                                                                    "type": "object",
                                                                    "additionalProperties": true
                                                                  },
                                                                  "requiredChildOneOf": {
                                                                    "description": "Specifies unverifed action check",
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "decision": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ],
                                                                        "enum": [
                                                                          "BLOCK",
                                                                          "WARN"
                                                                        ]
                                                                      },
                                                                      "onlyCheckers": {
                                                                        "type": "boolean"
                                                                      },
                                                                      "include": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "exclude": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "string"
                                                                        }
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "decision"
                                                                    ],
                                                                    "allOf": [
                                                                      {
                                                                        "if": {
                                                                          "type": "object",
                                                                          "required": [
                                                                            "exclude"
                                                                          ],
                                                                          "properties": {
                                                                            "exclude": {}
                                                                          }
                                                                        },
                                                                        "then": {
                                                                          "not": {
                                                                            "required": [
                                                                              "include"
                                                                            ]
                                                                          }
                                                                        }
                                                                      },
                                                                      {
                                                                        "if": {
                                                                          "type": "object",
                                                                          "required": [
                                                                            "include"
                                                                          ],
                                                                          "properties": {
                                                                            "include": {}
                                                                          }
                                                                        },
                                                                        "then": {
                                                                          "not": {
                                                                            "required": [
                                                                              "exclude"
                                                                            ]
                                                                          }
                                                                        }
                                                                      }
                                                                    ]
                                                                  },
                                                                  "actions": {
                                                                    "description": "Specifies a list of actions.",
                                                                    "type": "array",
                                                                    "items": {
                                                                      "type": "object",
                                                                      "additionalProperties": false,
                                                                      "properties": {
                                                                        "action": {
                                                                          "description": "Specifies an action to perform",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ],
                                                                          "enum": [
                                                                            "ASN1ContentExtractor",
                                                                            "Base64Decode",
                                                                            "ConditionChecker",
                                                                            "CheckDataSize",
                                                                            "CheckMimeType",
                                                                            "JsonPathExtract",
                                                                            "JsonPathExtractToVars",
                                                                            "JsonValidation",
                                                                            "XsdValidation",
                                                                            "PostFormDataToFlateJson",
                                                                            "MultipartExtract",
                                                                            "SetMessageFromVar",
                                                                            "SetVarFromMessage",
                                                                            "JwsToJson",
                                                                            "XPathExtract",
                                                                            "XPathExtractToVars",
                                                                            "SharedMapDeleter",
                                                                            "SharedMapRemover",
                                                                            "SharedMapSetter",
                                                                            "SharedMapGetter",
                                                                            "RandomNumberToVar",
                                                                            "VarsToSharedMap",
                                                                            "SharedMapToVars",
                                                                            "AntivirusFileChecker",
                                                                            "MtomExtractor",
                                                                            "JsonTransformer",
                                                                            "SetVar",
                                                                            "GraphQLRequestValidation",
                                                                            "ProtobufValidation",
                                                                            "OpenApiValidation",
                                                                            "DelimiterSplitter",
                                                                            "VarsToFile",
                                                                            "FileToVars",
                                                                            "WsdlValidation",
                                                                            "HttpFilter",
                                                                            "ProtobufToJson",
                                                                            "FilterMds",
                                                                            "OcspSignValidator",
                                                                            "OcspToJson",
                                                                            "ASN1ToJson",
                                                                            "XmlTransformer",
                                                                            "UrlEncode",
                                                                            "UrlDecodeUni",
                                                                            "UrlDecode",
                                                                            "HexDecode",
                                                                            "HexEncode",
                                                                            "ToLowerCase",
                                                                            "ToUpperCase",
                                                                            "Utf8ToUnicode",
                                                                            "Trim",
                                                                            "ICAPFileChecker",
                                                                            "MessageToFile",
                                                                            "MultipartFormGenerateFromVar",
                                                                            "HttpSender",
                                                                            "MessageAccumulator",
                                                                            "MessageFromAccumulator",
                                                                            "MessageFromPattern",
                                                                            "MultipartFormGenerateFromMessage",
                                                                            "JsonPatchMessage",
                                                                            "JsonPatchVar",
                                                                            "DigestFromMessage",
                                                                            "Base64Encode",
                                                                            "HMac",
                                                                            "FileToMessage",
                                                                            "JwtVerifier",
                                                                            "CharsetChecker",
                                                                            "LdapSearch",
                                                                            "UnicodeDecode",
                                                                            "MessageMapper",
                                                                            "SimpleRateLimiter",
                                                                            "EventSourceConverter",
                                                                            "LazySessionTimeChecker",
                                                                            "CalculateMessageProperties"
                                                                          ]
                                                                        },
                                                                        "id": {
                                                                          "description": "An identificator of action",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ]
                                                                        },
                                                                        "conditions": {
                                                                          "description": "Specifies the conditions for performina an action.",
                                                                          "type": "array",
                                                                          "items": {
                                                                            "type": "object",
                                                                            "additionalProperties": false,
                                                                            "properties": {
                                                                              "var": {
                                                                                "description": "Specifies a variable to check.",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ]
                                                                              },
                                                                              "operator": {
                                                                                "description": "Specifies an operator.",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ],
                                                                                "enum": [
                                                                                  "=",
                                                                                  "!=",
                                                                                  "<=",
                                                                                  ">=",
                                                                                  ">",
                                                                                  "<",
                                                                                  "in",
                                                                                  "not_in",
                                                                                  "~",
                                                                                  "~*",
                                                                                  "!~",
                                                                                  "!~*",
                                                                                  "ip_range",
                                                                                  "!ip_range",
                                                                                  "dn_mask",
                                                                                  "!dn_mask"
                                                                                ]
                                                                              },
                                                                              "val": {
                                                                                "description": "Specifies a value to check.",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ]
                                                                              }
                                                                            },
                                                                            "required": [
                                                                              "var",
                                                                              "operator",
                                                                              "val"
                                                                            ]
                                                                          }
                                                                        },
                                                                        "trace_config": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "enableAllActions": {
                                                                              "description": "enable tracing of all actions in chains",
                                                                              "type": "boolean"
                                                                            },
                                                                            "enableAllChains": {
                                                                              "description": "enable tracing of all actions in child chains",
                                                                              "type": "boolean"
                                                                            },
                                                                            "mode": {
                                                                              "description": "Enable or disable tracing at this level.",
                                                                              "type": "object",
                                                                              "additionalProperties": false,
                                                                              "properties": {
                                                                                "enabled": {
                                                                                  "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                  "type": [
                                                                                    "number",
                                                                                    "string"
                                                                                  ],
                                                                                  "enum": [
                                                                                    "on",
                                                                                    "off",
                                                                                    "var_based"
                                                                                  ]
                                                                                },
                                                                                "var": {
                                                                                  "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                  "type": [
                                                                                    "number",
                                                                                    "string"
                                                                                  ]
                                                                                }
                                                                              }
                                                                            },
                                                                            "spanAttributes": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "name": {
                                                                                    "description": "name of attribute",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "value": {
                                                                                    "description": "value of attribute, can contain variables",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  }
                                                                                }
                                                                              }
                                                                            },
                                                                            "spanName": {
                                                                              "description": "Specify name of span",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "enableSocketsTracing": {
                                                                              "description": "Enable or disable socket tracing, by default enabled",
                                                                              "type": "boolean"
                                                                            }
                                                                          }
                                                                        },
                                                                        "params": {
                                                                          "description": "Specifies extra parameters for the actions.",
                                                                          "type": "object",
                                                                          "additionalProperties": true
                                                                        },
                                                                        "requiredChildOneOf": {
                                                                          "description": "Specifies unverifed action check",
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "decision": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ],
                                                                              "enum": [
                                                                                "BLOCK",
                                                                                "WARN"
                                                                              ]
                                                                            },
                                                                            "onlyCheckers": {
                                                                              "type": "boolean"
                                                                            },
                                                                            "include": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ]
                                                                              }
                                                                            },
                                                                            "exclude": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "string"
                                                                              }
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "decision"
                                                                          ],
                                                                          "allOf": [
                                                                            {
                                                                              "if": {
                                                                                "type": "object",
                                                                                "required": [
                                                                                  "exclude"
                                                                                ],
                                                                                "properties": {
                                                                                  "exclude": {}
                                                                                }
                                                                              },
                                                                              "then": {
                                                                                "not": {
                                                                                  "required": [
                                                                                    "include"
                                                                                  ]
                                                                                }
                                                                              }
                                                                            },
                                                                            {
                                                                              "if": {
                                                                                "type": "object",
                                                                                "required": [
                                                                                  "include"
                                                                                ],
                                                                                "properties": {
                                                                                  "include": {}
                                                                                }
                                                                              },
                                                                              "then": {
                                                                                "not": {
                                                                                  "required": [
                                                                                    "exclude"
                                                                                  ]
                                                                                }
                                                                              }
                                                                            }
                                                                          ]
                                                                        },
                                                                        "actions": {
                                                                          "description": "Specifies a list of actions.",
                                                                          "type": "array",
                                                                          "items": {
                                                                            "type": "object",
                                                                            "additionalProperties": false,
                                                                            "properties": {
                                                                              "action": {
                                                                                "description": "Specifies an action to perform",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ],
                                                                                "enum": [
                                                                                  "ASN1ContentExtractor",
                                                                                  "Base64Decode",
                                                                                  "ConditionChecker",
                                                                                  "CheckDataSize",
                                                                                  "CheckMimeType",
                                                                                  "JsonPathExtract",
                                                                                  "JsonPathExtractToVars",
                                                                                  "JsonValidation",
                                                                                  "XsdValidation",
                                                                                  "PostFormDataToFlateJson",
                                                                                  "MultipartExtract",
                                                                                  "SetMessageFromVar",
                                                                                  "SetVarFromMessage",
                                                                                  "JwsToJson",
                                                                                  "XPathExtract",
                                                                                  "XPathExtractToVars",
                                                                                  "SharedMapDeleter",
                                                                                  "SharedMapRemover",
                                                                                  "SharedMapSetter",
                                                                                  "SharedMapGetter",
                                                                                  "RandomNumberToVar",
                                                                                  "VarsToSharedMap",
                                                                                  "SharedMapToVars",
                                                                                  "AntivirusFileChecker",
                                                                                  "MtomExtractor",
                                                                                  "JsonTransformer",
                                                                                  "SetVar",
                                                                                  "GraphQLRequestValidation",
                                                                                  "ProtobufValidation",
                                                                                  "OpenApiValidation",
                                                                                  "DelimiterSplitter",
                                                                                  "VarsToFile",
                                                                                  "FileToVars",
                                                                                  "WsdlValidation",
                                                                                  "HttpFilter",
                                                                                  "ProtobufToJson",
                                                                                  "FilterMds",
                                                                                  "OcspSignValidator",
                                                                                  "OcspToJson",
                                                                                  "ASN1ToJson",
                                                                                  "XmlTransformer",
                                                                                  "UrlEncode",
                                                                                  "UrlDecodeUni",
                                                                                  "UrlDecode",
                                                                                  "HexDecode",
                                                                                  "HexEncode",
                                                                                  "ToLowerCase",
                                                                                  "ToUpperCase",
                                                                                  "Utf8ToUnicode",
                                                                                  "Trim",
                                                                                  "ICAPFileChecker",
                                                                                  "MessageToFile",
                                                                                  "MultipartFormGenerateFromVar",
                                                                                  "HttpSender",
                                                                                  "MessageAccumulator",
                                                                                  "MessageFromAccumulator",
                                                                                  "MessageFromPattern",
                                                                                  "MultipartFormGenerateFromMessage",
                                                                                  "JsonPatchMessage",
                                                                                  "JsonPatchVar",
                                                                                  "DigestFromMessage",
                                                                                  "Base64Encode",
                                                                                  "HMac",
                                                                                  "FileToMessage",
                                                                                  "JwtVerifier",
                                                                                  "CharsetChecker",
                                                                                  "LdapSearch",
                                                                                  "UnicodeDecode",
                                                                                  "MessageMapper",
                                                                                  "SimpleRateLimiter",
                                                                                  "EventSourceConverter",
                                                                                  "LazySessionTimeChecker",
                                                                                  "CalculateMessageProperties"
                                                                                ]
                                                                              },
                                                                              "id": {
                                                                                "description": "An identificator of action",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ]
                                                                              },
                                                                              "conditions": {
                                                                                "description": "Specifies the conditions for performina an action.",
                                                                                "type": "array",
                                                                                "items": {
                                                                                  "type": "object",
                                                                                  "additionalProperties": false,
                                                                                  "properties": {
                                                                                    "var": {
                                                                                      "description": "Specifies a variable to check.",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ]
                                                                                    },
                                                                                    "operator": {
                                                                                      "description": "Specifies an operator.",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ],
                                                                                      "enum": [
                                                                                        "=",
                                                                                        "!=",
                                                                                        "<=",
                                                                                        ">=",
                                                                                        ">",
                                                                                        "<",
                                                                                        "in",
                                                                                        "not_in",
                                                                                        "~",
                                                                                        "~*",
                                                                                        "!~",
                                                                                        "!~*",
                                                                                        "ip_range",
                                                                                        "!ip_range",
                                                                                        "dn_mask",
                                                                                        "!dn_mask"
                                                                                      ]
                                                                                    },
                                                                                    "val": {
                                                                                      "description": "Specifies a value to check.",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ]
                                                                                    }
                                                                                  },
                                                                                  "required": [
                                                                                    "var",
                                                                                    "operator",
                                                                                    "val"
                                                                                  ]
                                                                                }
                                                                              },
                                                                              "trace_config": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "enableAllActions": {
                                                                                    "description": "enable tracing of all actions in chains",
                                                                                    "type": "boolean"
                                                                                  },
                                                                                  "enableAllChains": {
                                                                                    "description": "enable tracing of all actions in child chains",
                                                                                    "type": "boolean"
                                                                                  },
                                                                                  "mode": {
                                                                                    "description": "Enable or disable tracing at this level.",
                                                                                    "type": "object",
                                                                                    "additionalProperties": false,
                                                                                    "properties": {
                                                                                      "enabled": {
                                                                                        "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                        "type": [
                                                                                          "number",
                                                                                          "string"
                                                                                        ],
                                                                                        "enum": [
                                                                                          "on",
                                                                                          "off",
                                                                                          "var_based"
                                                                                        ]
                                                                                      },
                                                                                      "var": {
                                                                                        "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                        "type": [
                                                                                          "number",
                                                                                          "string"
                                                                                        ]
                                                                                      }
                                                                                    }
                                                                                  },
                                                                                  "spanAttributes": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "name": {
                                                                                          "description": "name of attribute",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "value": {
                                                                                          "description": "value of attribute, can contain variables",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        }
                                                                                      }
                                                                                    }
                                                                                  },
                                                                                  "spanName": {
                                                                                    "description": "Specify name of span",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "enableSocketsTracing": {
                                                                                    "description": "Enable or disable socket tracing, by default enabled",
                                                                                    "type": "boolean"
                                                                                  }
                                                                                }
                                                                              },
                                                                              "params": {
                                                                                "description": "Specifies extra parameters for the actions.",
                                                                                "type": "object",
                                                                                "additionalProperties": true
                                                                              },
                                                                              "requiredChildOneOf": {
                                                                                "description": "Specifies unverifed action check",
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "decision": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ],
                                                                                    "enum": [
                                                                                      "BLOCK",
                                                                                      "WARN"
                                                                                    ]
                                                                                  },
                                                                                  "onlyCheckers": {
                                                                                    "type": "boolean"
                                                                                  },
                                                                                  "include": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ]
                                                                                    }
                                                                                  },
                                                                                  "exclude": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "string"
                                                                                    }
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "decision"
                                                                                ],
                                                                                "allOf": [
                                                                                  {
                                                                                    "if": {
                                                                                      "type": "object",
                                                                                      "required": [
                                                                                        "exclude"
                                                                                      ],
                                                                                      "properties": {
                                                                                        "exclude": {}
                                                                                      }
                                                                                    },
                                                                                    "then": {
                                                                                      "not": {
                                                                                        "required": [
                                                                                          "include"
                                                                                        ]
                                                                                      }
                                                                                    }
                                                                                  },
                                                                                  {
                                                                                    "if": {
                                                                                      "type": "object",
                                                                                      "required": [
                                                                                        "include"
                                                                                      ],
                                                                                      "properties": {
                                                                                        "include": {}
                                                                                      }
                                                                                    },
                                                                                    "then": {
                                                                                      "not": {
                                                                                        "required": [
                                                                                          "exclude"
                                                                                        ]
                                                                                      }
                                                                                    }
                                                                                  }
                                                                                ]
                                                                              },
                                                                              "actions": {
                                                                                "description": "Specifies a list of actions.",
                                                                                "type": "array",
                                                                                "items": {
                                                                                  "type": "object",
                                                                                  "additionalProperties": false,
                                                                                  "properties": {
                                                                                    "action": {
                                                                                      "description": "Specifies an action to perform",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ],
                                                                                      "enum": [
                                                                                        "ASN1ContentExtractor",
                                                                                        "Base64Decode",
                                                                                        "ConditionChecker",
                                                                                        "CheckDataSize",
                                                                                        "CheckMimeType",
                                                                                        "JsonPathExtract",
                                                                                        "JsonPathExtractToVars",
                                                                                        "JsonValidation",
                                                                                        "XsdValidation",
                                                                                        "PostFormDataToFlateJson",
                                                                                        "MultipartExtract",
                                                                                        "SetMessageFromVar",
                                                                                        "SetVarFromMessage",
                                                                                        "JwsToJson",
                                                                                        "XPathExtract",
                                                                                        "XPathExtractToVars",
                                                                                        "SharedMapDeleter",
                                                                                        "SharedMapRemover",
                                                                                        "SharedMapSetter",
                                                                                        "SharedMapGetter",
                                                                                        "RandomNumberToVar",
                                                                                        "VarsToSharedMap",
                                                                                        "SharedMapToVars",
                                                                                        "AntivirusFileChecker",
                                                                                        "MtomExtractor",
                                                                                        "JsonTransformer",
                                                                                        "SetVar",
                                                                                        "GraphQLRequestValidation",
                                                                                        "ProtobufValidation",
                                                                                        "OpenApiValidation",
                                                                                        "DelimiterSplitter",
                                                                                        "VarsToFile",
                                                                                        "FileToVars",
                                                                                        "WsdlValidation",
                                                                                        "HttpFilter",
                                                                                        "ProtobufToJson",
                                                                                        "FilterMds",
                                                                                        "OcspSignValidator",
                                                                                        "OcspToJson",
                                                                                        "ASN1ToJson",
                                                                                        "XmlTransformer",
                                                                                        "UrlEncode",
                                                                                        "UrlDecodeUni",
                                                                                        "UrlDecode",
                                                                                        "HexDecode",
                                                                                        "HexEncode",
                                                                                        "ToLowerCase",
                                                                                        "ToUpperCase",
                                                                                        "Utf8ToUnicode",
                                                                                        "Trim",
                                                                                        "ICAPFileChecker",
                                                                                        "MessageToFile",
                                                                                        "MultipartFormGenerateFromVar",
                                                                                        "HttpSender",
                                                                                        "MessageAccumulator",
                                                                                        "MessageFromAccumulator",
                                                                                        "MessageFromPattern",
                                                                                        "MultipartFormGenerateFromMessage",
                                                                                        "JsonPatchMessage",
                                                                                        "JsonPatchVar",
                                                                                        "DigestFromMessage",
                                                                                        "Base64Encode",
                                                                                        "HMac",
                                                                                        "FileToMessage",
                                                                                        "JwtVerifier",
                                                                                        "CharsetChecker",
                                                                                        "LdapSearch",
                                                                                        "UnicodeDecode",
                                                                                        "MessageMapper",
                                                                                        "SimpleRateLimiter",
                                                                                        "EventSourceConverter",
                                                                                        "LazySessionTimeChecker",
                                                                                        "CalculateMessageProperties"
                                                                                      ]
                                                                                    },
                                                                                    "id": {
                                                                                      "description": "An identificator of action",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ]
                                                                                    },
                                                                                    "conditions": {
                                                                                      "description": "Specifies the conditions for performina an action.",
                                                                                      "type": "array",
                                                                                      "items": {
                                                                                        "type": "object",
                                                                                        "additionalProperties": false,
                                                                                        "properties": {
                                                                                          "var": {
                                                                                            "description": "Specifies a variable to check.",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ]
                                                                                          },
                                                                                          "operator": {
                                                                                            "description": "Specifies an operator.",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ],
                                                                                            "enum": [
                                                                                              "=",
                                                                                              "!=",
                                                                                              "<=",
                                                                                              ">=",
                                                                                              ">",
                                                                                              "<",
                                                                                              "in",
                                                                                              "not_in",
                                                                                              "~",
                                                                                              "~*",
                                                                                              "!~",
                                                                                              "!~*",
                                                                                              "ip_range",
                                                                                              "!ip_range",
                                                                                              "dn_mask",
                                                                                              "!dn_mask"
                                                                                            ]
                                                                                          },
                                                                                          "val": {
                                                                                            "description": "Specifies a value to check.",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ]
                                                                                          }
                                                                                        },
                                                                                        "required": [
                                                                                          "var",
                                                                                          "operator",
                                                                                          "val"
                                                                                        ]
                                                                                      }
                                                                                    },
                                                                                    "trace_config": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "enableAllActions": {
                                                                                          "description": "enable tracing of all actions in chains",
                                                                                          "type": "boolean"
                                                                                        },
                                                                                        "enableAllChains": {
                                                                                          "description": "enable tracing of all actions in child chains",
                                                                                          "type": "boolean"
                                                                                        },
                                                                                        "mode": {
                                                                                          "description": "Enable or disable tracing at this level.",
                                                                                          "type": "object",
                                                                                          "additionalProperties": false,
                                                                                          "properties": {
                                                                                            "enabled": {
                                                                                              "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                              "type": [
                                                                                                "number",
                                                                                                "string"
                                                                                              ],
                                                                                              "enum": [
                                                                                                "on",
                                                                                                "off",
                                                                                                "var_based"
                                                                                              ]
                                                                                            },
                                                                                            "var": {
                                                                                              "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                              "type": [
                                                                                                "number",
                                                                                                "string"
                                                                                              ]
                                                                                            }
                                                                                          }
                                                                                        },
                                                                                        "spanAttributes": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "name": {
                                                                                                "description": "name of attribute",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "value": {
                                                                                                "description": "value of attribute, can contain variables",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              }
                                                                                            }
                                                                                          }
                                                                                        },
                                                                                        "spanName": {
                                                                                          "description": "Specify name of span",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "enableSocketsTracing": {
                                                                                          "description": "Enable or disable socket tracing, by default enabled",
                                                                                          "type": "boolean"
                                                                                        }
                                                                                      }
                                                                                    },
                                                                                    "params": {
                                                                                      "description": "Specifies extra parameters for the actions.",
                                                                                      "type": "object",
                                                                                      "additionalProperties": true
                                                                                    },
                                                                                    "requiredChildOneOf": {
                                                                                      "description": "Specifies unverifed action check",
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "decision": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ],
                                                                                          "enum": [
                                                                                            "BLOCK",
                                                                                            "WARN"
                                                                                          ]
                                                                                        },
                                                                                        "onlyCheckers": {
                                                                                          "type": "boolean"
                                                                                        },
                                                                                        "include": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ]
                                                                                          }
                                                                                        },
                                                                                        "exclude": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "string"
                                                                                          }
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "decision"
                                                                                      ],
                                                                                      "allOf": [
                                                                                        {
                                                                                          "if": {
                                                                                            "type": "object",
                                                                                            "required": [
                                                                                              "exclude"
                                                                                            ],
                                                                                            "properties": {
                                                                                              "exclude": {}
                                                                                            }
                                                                                          },
                                                                                          "then": {
                                                                                            "not": {
                                                                                              "required": [
                                                                                                "include"
                                                                                              ]
                                                                                            }
                                                                                          }
                                                                                        },
                                                                                        {
                                                                                          "if": {
                                                                                            "type": "object",
                                                                                            "required": [
                                                                                              "include"
                                                                                            ],
                                                                                            "properties": {
                                                                                              "include": {}
                                                                                            }
                                                                                          },
                                                                                          "then": {
                                                                                            "not": {
                                                                                              "required": [
                                                                                                "exclude"
                                                                                              ]
                                                                                            }
                                                                                          }
                                                                                        }
                                                                                      ]
                                                                                    },
                                                                                    "actions": {
                                                                                      "description": "Specifies a list of actions.",
                                                                                      "type": "array",
                                                                                      "items": {
                                                                                        "type": "object",
                                                                                        "additionalProperties": false,
                                                                                        "properties": {
                                                                                          "action": {
                                                                                            "description": "Specifies an action to perform",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ],
                                                                                            "enum": [
                                                                                              "ASN1ContentExtractor",
                                                                                              "Base64Decode",
                                                                                              "ConditionChecker",
                                                                                              "CheckDataSize",
                                                                                              "CheckMimeType",
                                                                                              "JsonPathExtract",
                                                                                              "JsonPathExtractToVars",
                                                                                              "JsonValidation",
                                                                                              "XsdValidation",
                                                                                              "PostFormDataToFlateJson",
                                                                                              "MultipartExtract",
                                                                                              "SetMessageFromVar",
                                                                                              "SetVarFromMessage",
                                                                                              "JwsToJson",
                                                                                              "XPathExtract",
                                                                                              "XPathExtractToVars",
                                                                                              "SharedMapDeleter",
                                                                                              "SharedMapRemover",
                                                                                              "SharedMapSetter",
                                                                                              "SharedMapGetter",
                                                                                              "RandomNumberToVar",
                                                                                              "VarsToSharedMap",
                                                                                              "SharedMapToVars",
                                                                                              "AntivirusFileChecker",
                                                                                              "MtomExtractor",
                                                                                              "JsonTransformer",
                                                                                              "SetVar",
                                                                                              "GraphQLRequestValidation",
                                                                                              "ProtobufValidation",
                                                                                              "OpenApiValidation",
                                                                                              "DelimiterSplitter",
                                                                                              "VarsToFile",
                                                                                              "FileToVars",
                                                                                              "WsdlValidation",
                                                                                              "HttpFilter",
                                                                                              "ProtobufToJson",
                                                                                              "FilterMds",
                                                                                              "OcspSignValidator",
                                                                                              "OcspToJson",
                                                                                              "ASN1ToJson",
                                                                                              "XmlTransformer",
                                                                                              "UrlEncode",
                                                                                              "UrlDecodeUni",
                                                                                              "UrlDecode",
                                                                                              "HexDecode",
                                                                                              "HexEncode",
                                                                                              "ToLowerCase",
                                                                                              "ToUpperCase",
                                                                                              "Utf8ToUnicode",
                                                                                              "Trim",
                                                                                              "ICAPFileChecker",
                                                                                              "MessageToFile",
                                                                                              "MultipartFormGenerateFromVar",
                                                                                              "HttpSender",
                                                                                              "MessageAccumulator",
                                                                                              "MessageFromAccumulator",
                                                                                              "MessageFromPattern",
                                                                                              "MultipartFormGenerateFromMessage",
                                                                                              "JsonPatchMessage",
                                                                                              "JsonPatchVar",
                                                                                              "DigestFromMessage",
                                                                                              "Base64Encode",
                                                                                              "HMac",
                                                                                              "FileToMessage",
                                                                                              "JwtVerifier",
                                                                                              "CharsetChecker",
                                                                                              "LdapSearch",
                                                                                              "UnicodeDecode",
                                                                                              "MessageMapper",
                                                                                              "SimpleRateLimiter",
                                                                                              "EventSourceConverter",
                                                                                              "LazySessionTimeChecker",
                                                                                              "CalculateMessageProperties"
                                                                                            ]
                                                                                          },
                                                                                          "id": {
                                                                                            "description": "An identificator of action",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ]
                                                                                          },
                                                                                          "conditions": {
                                                                                            "description": "Specifies the conditions for performina an action.",
                                                                                            "type": "array",
                                                                                            "items": {
                                                                                              "type": "object",
                                                                                              "additionalProperties": false,
                                                                                              "properties": {
                                                                                                "var": {
                                                                                                  "description": "Specifies a variable to check.",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ]
                                                                                                },
                                                                                                "operator": {
                                                                                                  "description": "Specifies an operator.",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ],
                                                                                                  "enum": [
                                                                                                    "=",
                                                                                                    "!=",
                                                                                                    "<=",
                                                                                                    ">=",
                                                                                                    ">",
                                                                                                    "<",
                                                                                                    "in",
                                                                                                    "not_in",
                                                                                                    "~",
                                                                                                    "~*",
                                                                                                    "!~",
                                                                                                    "!~*",
                                                                                                    "ip_range",
                                                                                                    "!ip_range",
                                                                                                    "dn_mask",
                                                                                                    "!dn_mask"
                                                                                                  ]
                                                                                                },
                                                                                                "val": {
                                                                                                  "description": "Specifies a value to check.",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ]
                                                                                                }
                                                                                              },
                                                                                              "required": [
                                                                                                "var",
                                                                                                "operator",
                                                                                                "val"
                                                                                              ]
                                                                                            }
                                                                                          },
                                                                                          "trace_config": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "enableAllActions": {
                                                                                                "description": "enable tracing of all actions in chains",
                                                                                                "type": "boolean"
                                                                                              },
                                                                                              "enableAllChains": {
                                                                                                "description": "enable tracing of all actions in child chains",
                                                                                                "type": "boolean"
                                                                                              },
                                                                                              "mode": {
                                                                                                "description": "Enable or disable tracing at this level.",
                                                                                                "type": "object",
                                                                                                "additionalProperties": false,
                                                                                                "properties": {
                                                                                                  "enabled": {
                                                                                                    "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                    "type": [
                                                                                                      "number",
                                                                                                      "string"
                                                                                                    ],
                                                                                                    "enum": [
                                                                                                      "on",
                                                                                                      "off",
                                                                                                      "var_based"
                                                                                                    ]
                                                                                                  },
                                                                                                  "var": {
                                                                                                    "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                    "type": [
                                                                                                      "number",
                                                                                                      "string"
                                                                                                    ]
                                                                                                  }
                                                                                                }
                                                                                              },
                                                                                              "spanAttributes": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "name": {
                                                                                                      "description": "name of attribute",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "value": {
                                                                                                      "description": "value of attribute, can contain variables",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    }
                                                                                                  }
                                                                                                }
                                                                                              },
                                                                                              "spanName": {
                                                                                                "description": "Specify name of span",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "enableSocketsTracing": {
                                                                                                "description": "Enable or disable socket tracing, by default enabled",
                                                                                                "type": "boolean"
                                                                                              }
                                                                                            }
                                                                                          },
                                                                                          "params": {
                                                                                            "description": "Specifies extra parameters for the actions.",
                                                                                            "type": "object",
                                                                                            "additionalProperties": true
                                                                                          },
                                                                                          "requiredChildOneOf": {
                                                                                            "description": "Specifies unverifed action check",
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "decision": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ],
                                                                                                "enum": [
                                                                                                  "BLOCK",
                                                                                                  "WARN"
                                                                                                ]
                                                                                              },
                                                                                              "onlyCheckers": {
                                                                                                "type": "boolean"
                                                                                              },
                                                                                              "include": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ]
                                                                                                }
                                                                                              },
                                                                                              "exclude": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "string"
                                                                                                }
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "decision"
                                                                                            ],
                                                                                            "allOf": [
                                                                                              {
                                                                                                "if": {
                                                                                                  "type": "object",
                                                                                                  "required": [
                                                                                                    "exclude"
                                                                                                  ],
                                                                                                  "properties": {
                                                                                                    "exclude": {}
                                                                                                  }
                                                                                                },
                                                                                                "then": {
                                                                                                  "not": {
                                                                                                    "required": [
                                                                                                      "include"
                                                                                                    ]
                                                                                                  }
                                                                                                }
                                                                                              },
                                                                                              {
                                                                                                "if": {
                                                                                                  "type": "object",
                                                                                                  "required": [
                                                                                                    "include"
                                                                                                  ],
                                                                                                  "properties": {
                                                                                                    "include": {}
                                                                                                  }
                                                                                                },
                                                                                                "then": {
                                                                                                  "not": {
                                                                                                    "required": [
                                                                                                      "exclude"
                                                                                                    ]
                                                                                                  }
                                                                                                }
                                                                                              }
                                                                                            ]
                                                                                          },
                                                                                          "actions": {
                                                                                            "description": "Specifies a list of actions.",
                                                                                            "type": "array",
                                                                                            "items": {
                                                                                              "type": "object",
                                                                                              "additionalProperties": false,
                                                                                              "properties": {
                                                                                                "action": {
                                                                                                  "description": "Specifies an action to perform",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ],
                                                                                                  "enum": [
                                                                                                    "ASN1ContentExtractor",
                                                                                                    "Base64Decode",
                                                                                                    "ConditionChecker",
                                                                                                    "CheckDataSize",
                                                                                                    "CheckMimeType",
                                                                                                    "JsonPathExtract",
                                                                                                    "JsonPathExtractToVars",
                                                                                                    "JsonValidation",
                                                                                                    "XsdValidation",
                                                                                                    "PostFormDataToFlateJson",
                                                                                                    "MultipartExtract",
                                                                                                    "SetMessageFromVar",
                                                                                                    "SetVarFromMessage",
                                                                                                    "JwsToJson",
                                                                                                    "XPathExtract",
                                                                                                    "XPathExtractToVars",
                                                                                                    "SharedMapDeleter",
                                                                                                    "SharedMapRemover",
                                                                                                    "SharedMapSetter",
                                                                                                    "SharedMapGetter",
                                                                                                    "RandomNumberToVar",
                                                                                                    "VarsToSharedMap",
                                                                                                    "SharedMapToVars",
                                                                                                    "AntivirusFileChecker",
                                                                                                    "MtomExtractor",
                                                                                                    "JsonTransformer",
                                                                                                    "SetVar",
                                                                                                    "GraphQLRequestValidation",
                                                                                                    "ProtobufValidation",
                                                                                                    "OpenApiValidation",
                                                                                                    "DelimiterSplitter",
                                                                                                    "VarsToFile",
                                                                                                    "FileToVars",
                                                                                                    "WsdlValidation",
                                                                                                    "HttpFilter",
                                                                                                    "ProtobufToJson",
                                                                                                    "FilterMds",
                                                                                                    "OcspSignValidator",
                                                                                                    "OcspToJson",
                                                                                                    "ASN1ToJson",
                                                                                                    "XmlTransformer",
                                                                                                    "UrlEncode",
                                                                                                    "UrlDecodeUni",
                                                                                                    "UrlDecode",
                                                                                                    "HexDecode",
                                                                                                    "HexEncode",
                                                                                                    "ToLowerCase",
                                                                                                    "ToUpperCase",
                                                                                                    "Utf8ToUnicode",
                                                                                                    "Trim",
                                                                                                    "ICAPFileChecker",
                                                                                                    "MessageToFile",
                                                                                                    "MultipartFormGenerateFromVar",
                                                                                                    "HttpSender",
                                                                                                    "MessageAccumulator",
                                                                                                    "MessageFromAccumulator",
                                                                                                    "MessageFromPattern",
                                                                                                    "MultipartFormGenerateFromMessage",
                                                                                                    "JsonPatchMessage",
                                                                                                    "JsonPatchVar",
                                                                                                    "DigestFromMessage",
                                                                                                    "Base64Encode",
                                                                                                    "HMac",
                                                                                                    "FileToMessage",
                                                                                                    "JwtVerifier",
                                                                                                    "CharsetChecker",
                                                                                                    "LdapSearch",
                                                                                                    "UnicodeDecode",
                                                                                                    "MessageMapper",
                                                                                                    "SimpleRateLimiter",
                                                                                                    "EventSourceConverter",
                                                                                                    "LazySessionTimeChecker",
                                                                                                    "CalculateMessageProperties"
                                                                                                  ]
                                                                                                },
                                                                                                "id": {
                                                                                                  "description": "An identificator of action",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ]
                                                                                                },
                                                                                                "conditions": {
                                                                                                  "description": "Specifies the conditions for performina an action.",
                                                                                                  "type": "array",
                                                                                                  "items": {
                                                                                                    "type": "object",
                                                                                                    "additionalProperties": false,
                                                                                                    "properties": {
                                                                                                      "var": {
                                                                                                        "description": "Specifies a variable to check.",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ]
                                                                                                      },
                                                                                                      "operator": {
                                                                                                        "description": "Specifies an operator.",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ],
                                                                                                        "enum": [
                                                                                                          "=",
                                                                                                          "!=",
                                                                                                          "<=",
                                                                                                          ">=",
                                                                                                          ">",
                                                                                                          "<",
                                                                                                          "in",
                                                                                                          "not_in",
                                                                                                          "~",
                                                                                                          "~*",
                                                                                                          "!~",
                                                                                                          "!~*",
                                                                                                          "ip_range",
                                                                                                          "!ip_range",
                                                                                                          "dn_mask",
                                                                                                          "!dn_mask"
                                                                                                        ]
                                                                                                      },
                                                                                                      "val": {
                                                                                                        "description": "Specifies a value to check.",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ]
                                                                                                      }
                                                                                                    },
                                                                                                    "required": [
                                                                                                      "var",
                                                                                                      "operator",
                                                                                                      "val"
                                                                                                    ]
                                                                                                  }
                                                                                                },
                                                                                                "trace_config": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "enableAllActions": {
                                                                                                      "description": "enable tracing of all actions in chains",
                                                                                                      "type": "boolean"
                                                                                                    },
                                                                                                    "enableAllChains": {
                                                                                                      "description": "enable tracing of all actions in child chains",
                                                                                                      "type": "boolean"
                                                                                                    },
                                                                                                    "mode": {
                                                                                                      "description": "Enable or disable tracing at this level.",
                                                                                                      "type": "object",
                                                                                                      "additionalProperties": false,
                                                                                                      "properties": {
                                                                                                        "enabled": {
                                                                                                          "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                          "type": [
                                                                                                            "number",
                                                                                                            "string"
                                                                                                          ],
                                                                                                          "enum": [
                                                                                                            "on",
                                                                                                            "off",
                                                                                                            "var_based"
                                                                                                          ]
                                                                                                        },
                                                                                                        "var": {
                                                                                                          "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                          "type": [
                                                                                                            "number",
                                                                                                            "string"
                                                                                                          ]
                                                                                                        }
                                                                                                      }
                                                                                                    },
                                                                                                    "spanAttributes": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "name": {
                                                                                                            "description": "name of attribute",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "value": {
                                                                                                            "description": "value of attribute, can contain variables",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          }
                                                                                                        }
                                                                                                      }
                                                                                                    },
                                                                                                    "spanName": {
                                                                                                      "description": "Specify name of span",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "enableSocketsTracing": {
                                                                                                      "description": "Enable or disable socket tracing, by default enabled",
                                                                                                      "type": "boolean"
                                                                                                    }
                                                                                                  }
                                                                                                },
                                                                                                "params": {
                                                                                                  "description": "Specifies extra parameters for the actions.",
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": true
                                                                                                },
                                                                                                "requiredChildOneOf": {
                                                                                                  "description": "Specifies unverifed action check",
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "decision": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ],
                                                                                                      "enum": [
                                                                                                        "BLOCK",
                                                                                                        "WARN"
                                                                                                      ]
                                                                                                    },
                                                                                                    "onlyCheckers": {
                                                                                                      "type": "boolean"
                                                                                                    },
                                                                                                    "include": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ]
                                                                                                      }
                                                                                                    },
                                                                                                    "exclude": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "string"
                                                                                                      }
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "decision"
                                                                                                  ],
                                                                                                  "allOf": [
                                                                                                    {
                                                                                                      "if": {
                                                                                                        "type": "object",
                                                                                                        "required": [
                                                                                                          "exclude"
                                                                                                        ],
                                                                                                        "properties": {
                                                                                                          "exclude": {}
                                                                                                        }
                                                                                                      },
                                                                                                      "then": {
                                                                                                        "not": {
                                                                                                          "required": [
                                                                                                            "include"
                                                                                                          ]
                                                                                                        }
                                                                                                      }
                                                                                                    },
                                                                                                    {
                                                                                                      "if": {
                                                                                                        "type": "object",
                                                                                                        "required": [
                                                                                                          "include"
                                                                                                        ],
                                                                                                        "properties": {
                                                                                                          "include": {}
                                                                                                        }
                                                                                                      },
                                                                                                      "then": {
                                                                                                        "not": {
                                                                                                          "required": [
                                                                                                            "exclude"
                                                                                                          ]
                                                                                                        }
                                                                                                      }
                                                                                                    }
                                                                                                  ]
                                                                                                },
                                                                                                "actions": {
                                                                                                  "description": "Specifies a list of actions.",
                                                                                                  "type": "array",
                                                                                                  "items": {
                                                                                                    "type": "object",
                                                                                                    "additionalProperties": false,
                                                                                                    "properties": {
                                                                                                      "action": {
                                                                                                        "description": "Specifies an action to perform",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ],
                                                                                                        "enum": [
                                                                                                          "ASN1ContentExtractor",
                                                                                                          "Base64Decode",
                                                                                                          "ConditionChecker",
                                                                                                          "CheckDataSize",
                                                                                                          "CheckMimeType",
                                                                                                          "JsonPathExtract",
                                                                                                          "JsonPathExtractToVars",
                                                                                                          "JsonValidation",
                                                                                                          "XsdValidation",
                                                                                                          "PostFormDataToFlateJson",
                                                                                                          "MultipartExtract",
                                                                                                          "SetMessageFromVar",
                                                                                                          "SetVarFromMessage",
                                                                                                          "JwsToJson",
                                                                                                          "XPathExtract",
                                                                                                          "XPathExtractToVars",
                                                                                                          "SharedMapDeleter",
                                                                                                          "SharedMapRemover",
                                                                                                          "SharedMapSetter",
                                                                                                          "SharedMapGetter",
                                                                                                          "RandomNumberToVar",
                                                                                                          "VarsToSharedMap",
                                                                                                          "SharedMapToVars",
                                                                                                          "AntivirusFileChecker",
                                                                                                          "MtomExtractor",
                                                                                                          "JsonTransformer",
                                                                                                          "SetVar",
                                                                                                          "GraphQLRequestValidation",
                                                                                                          "ProtobufValidation",
                                                                                                          "OpenApiValidation",
                                                                                                          "DelimiterSplitter",
                                                                                                          "VarsToFile",
                                                                                                          "FileToVars",
                                                                                                          "WsdlValidation",
                                                                                                          "HttpFilter",
                                                                                                          "ProtobufToJson",
                                                                                                          "FilterMds",
                                                                                                          "OcspSignValidator",
                                                                                                          "OcspToJson",
                                                                                                          "ASN1ToJson",
                                                                                                          "XmlTransformer",
                                                                                                          "UrlEncode",
                                                                                                          "UrlDecodeUni",
                                                                                                          "UrlDecode",
                                                                                                          "HexDecode",
                                                                                                          "HexEncode",
                                                                                                          "ToLowerCase",
                                                                                                          "ToUpperCase",
                                                                                                          "Utf8ToUnicode",
                                                                                                          "Trim",
                                                                                                          "ICAPFileChecker",
                                                                                                          "MessageToFile",
                                                                                                          "MultipartFormGenerateFromVar",
                                                                                                          "HttpSender",
                                                                                                          "MessageAccumulator",
                                                                                                          "MessageFromAccumulator",
                                                                                                          "MessageFromPattern",
                                                                                                          "MultipartFormGenerateFromMessage",
                                                                                                          "JsonPatchMessage",
                                                                                                          "JsonPatchVar",
                                                                                                          "DigestFromMessage",
                                                                                                          "Base64Encode",
                                                                                                          "HMac",
                                                                                                          "FileToMessage",
                                                                                                          "JwtVerifier",
                                                                                                          "CharsetChecker",
                                                                                                          "LdapSearch",
                                                                                                          "UnicodeDecode",
                                                                                                          "MessageMapper",
                                                                                                          "SimpleRateLimiter",
                                                                                                          "EventSourceConverter",
                                                                                                          "LazySessionTimeChecker",
                                                                                                          "CalculateMessageProperties"
                                                                                                        ]
                                                                                                      },
                                                                                                      "id": {
                                                                                                        "description": "An identificator of action",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ]
                                                                                                      },
                                                                                                      "conditions": {
                                                                                                        "description": "Specifies the conditions for performina an action.",
                                                                                                        "type": "array",
                                                                                                        "items": {
                                                                                                          "type": "object",
                                                                                                          "additionalProperties": false,
                                                                                                          "properties": {
                                                                                                            "var": {
                                                                                                              "description": "Specifies a variable to check.",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ]
                                                                                                            },
                                                                                                            "operator": {
                                                                                                              "description": "Specifies an operator.",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ],
                                                                                                              "enum": [
                                                                                                                "=",
                                                                                                                "!=",
                                                                                                                "<=",
                                                                                                                ">=",
                                                                                                                ">",
                                                                                                                "<",
                                                                                                                "in",
                                                                                                                "not_in",
                                                                                                                "~",
                                                                                                                "~*",
                                                                                                                "!~",
                                                                                                                "!~*",
                                                                                                                "ip_range",
                                                                                                                "!ip_range",
                                                                                                                "dn_mask",
                                                                                                                "!dn_mask"
                                                                                                              ]
                                                                                                            },
                                                                                                            "val": {
                                                                                                              "description": "Specifies a value to check.",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ]
                                                                                                            }
                                                                                                          },
                                                                                                          "required": [
                                                                                                            "var",
                                                                                                            "operator",
                                                                                                            "val"
                                                                                                          ]
                                                                                                        }
                                                                                                      },
                                                                                                      "trace_config": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "enableAllActions": {
                                                                                                            "description": "enable tracing of all actions in chains",
                                                                                                            "type": "boolean"
                                                                                                          },
                                                                                                          "enableAllChains": {
                                                                                                            "description": "enable tracing of all actions in child chains",
                                                                                                            "type": "boolean"
                                                                                                          },
                                                                                                          "mode": {
                                                                                                            "description": "Enable or disable tracing at this level.",
                                                                                                            "type": "object",
                                                                                                            "additionalProperties": false,
                                                                                                            "properties": {
                                                                                                              "enabled": {
                                                                                                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                "type": [
                                                                                                                  "number",
                                                                                                                  "string"
                                                                                                                ],
                                                                                                                "enum": [
                                                                                                                  "on",
                                                                                                                  "off",
                                                                                                                  "var_based"
                                                                                                                ]
                                                                                                              },
                                                                                                              "var": {
                                                                                                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                "type": [
                                                                                                                  "number",
                                                                                                                  "string"
                                                                                                                ]
                                                                                                              }
                                                                                                            }
                                                                                                          },
                                                                                                          "spanAttributes": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "name": {
                                                                                                                  "description": "name of attribute",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "value": {
                                                                                                                  "description": "value of attribute, can contain variables",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                }
                                                                                                              }
                                                                                                            }
                                                                                                          },
                                                                                                          "spanName": {
                                                                                                            "description": "Specify name of span",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "enableSocketsTracing": {
                                                                                                            "description": "Enable or disable socket tracing, by default enabled",
                                                                                                            "type": "boolean"
                                                                                                          }
                                                                                                        }
                                                                                                      },
                                                                                                      "params": {
                                                                                                        "description": "Specifies extra parameters for the actions.",
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": true
                                                                                                      },
                                                                                                      "requiredChildOneOf": {
                                                                                                        "description": "Specifies unverifed action check",
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "decision": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ],
                                                                                                            "enum": [
                                                                                                              "BLOCK",
                                                                                                              "WARN"
                                                                                                            ]
                                                                                                          },
                                                                                                          "onlyCheckers": {
                                                                                                            "type": "boolean"
                                                                                                          },
                                                                                                          "include": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ]
                                                                                                            }
                                                                                                          },
                                                                                                          "exclude": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "string"
                                                                                                            }
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "decision"
                                                                                                        ],
                                                                                                        "allOf": [
                                                                                                          {
                                                                                                            "if": {
                                                                                                              "type": "object",
                                                                                                              "required": [
                                                                                                                "exclude"
                                                                                                              ],
                                                                                                              "properties": {
                                                                                                                "exclude": {}
                                                                                                              }
                                                                                                            },
                                                                                                            "then": {
                                                                                                              "not": {
                                                                                                                "required": [
                                                                                                                  "include"
                                                                                                                ]
                                                                                                              }
                                                                                                            }
                                                                                                          },
                                                                                                          {
                                                                                                            "if": {
                                                                                                              "type": "object",
                                                                                                              "required": [
                                                                                                                "include"
                                                                                                              ],
                                                                                                              "properties": {
                                                                                                                "include": {}
                                                                                                              }
                                                                                                            },
                                                                                                            "then": {
                                                                                                              "not": {
                                                                                                                "required": [
                                                                                                                  "exclude"
                                                                                                                ]
                                                                                                              }
                                                                                                            }
                                                                                                          }
                                                                                                        ]
                                                                                                      },
                                                                                                      "actions": {
                                                                                                        "description": "Specifies a list of actions.",
                                                                                                        "type": "array",
                                                                                                        "items": {
                                                                                                          "type": "object",
                                                                                                          "additionalProperties": false,
                                                                                                          "properties": {
                                                                                                            "action": {
                                                                                                              "description": "Specifies an action to perform",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ],
                                                                                                              "enum": [
                                                                                                                "ASN1ContentExtractor",
                                                                                                                "Base64Decode",
                                                                                                                "ConditionChecker",
                                                                                                                "CheckDataSize",
                                                                                                                "CheckMimeType",
                                                                                                                "JsonPathExtract",
                                                                                                                "JsonPathExtractToVars",
                                                                                                                "JsonValidation",
                                                                                                                "XsdValidation",
                                                                                                                "PostFormDataToFlateJson",
                                                                                                                "MultipartExtract",
                                                                                                                "SetMessageFromVar",
                                                                                                                "SetVarFromMessage",
                                                                                                                "JwsToJson",
                                                                                                                "XPathExtract",
                                                                                                                "XPathExtractToVars",
                                                                                                                "SharedMapDeleter",
                                                                                                                "SharedMapRemover",
                                                                                                                "SharedMapSetter",
                                                                                                                "SharedMapGetter",
                                                                                                                "RandomNumberToVar",
                                                                                                                "VarsToSharedMap",
                                                                                                                "SharedMapToVars",
                                                                                                                "AntivirusFileChecker",
                                                                                                                "MtomExtractor",
                                                                                                                "JsonTransformer",
                                                                                                                "SetVar",
                                                                                                                "GraphQLRequestValidation",
                                                                                                                "ProtobufValidation",
                                                                                                                "OpenApiValidation",
                                                                                                                "DelimiterSplitter",
                                                                                                                "VarsToFile",
                                                                                                                "FileToVars",
                                                                                                                "WsdlValidation",
                                                                                                                "HttpFilter",
                                                                                                                "ProtobufToJson",
                                                                                                                "FilterMds",
                                                                                                                "OcspSignValidator",
                                                                                                                "OcspToJson",
                                                                                                                "ASN1ToJson",
                                                                                                                "XmlTransformer",
                                                                                                                "UrlEncode",
                                                                                                                "UrlDecodeUni",
                                                                                                                "UrlDecode",
                                                                                                                "HexDecode",
                                                                                                                "HexEncode",
                                                                                                                "ToLowerCase",
                                                                                                                "ToUpperCase",
                                                                                                                "Utf8ToUnicode",
                                                                                                                "Trim",
                                                                                                                "ICAPFileChecker",
                                                                                                                "MessageToFile",
                                                                                                                "MultipartFormGenerateFromVar",
                                                                                                                "HttpSender",
                                                                                                                "MessageAccumulator",
                                                                                                                "MessageFromAccumulator",
                                                                                                                "MessageFromPattern",
                                                                                                                "MultipartFormGenerateFromMessage",
                                                                                                                "JsonPatchMessage",
                                                                                                                "JsonPatchVar",
                                                                                                                "DigestFromMessage",
                                                                                                                "Base64Encode",
                                                                                                                "HMac",
                                                                                                                "FileToMessage",
                                                                                                                "JwtVerifier",
                                                                                                                "CharsetChecker",
                                                                                                                "LdapSearch",
                                                                                                                "UnicodeDecode",
                                                                                                                "MessageMapper",
                                                                                                                "SimpleRateLimiter",
                                                                                                                "EventSourceConverter",
                                                                                                                "LazySessionTimeChecker",
                                                                                                                "CalculateMessageProperties"
                                                                                                              ]
                                                                                                            },
                                                                                                            "id": {
                                                                                                              "description": "An identificator of action",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ]
                                                                                                            },
                                                                                                            "conditions": {
                                                                                                              "description": "Specifies the conditions for performina an action.",
                                                                                                              "type": "array",
                                                                                                              "items": {
                                                                                                                "type": "object",
                                                                                                                "additionalProperties": false,
                                                                                                                "properties": {
                                                                                                                  "var": {
                                                                                                                    "description": "Specifies a variable to check.",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "operator": {
                                                                                                                    "description": "Specifies an operator.",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ],
                                                                                                                    "enum": [
                                                                                                                      "=",
                                                                                                                      "!=",
                                                                                                                      "<=",
                                                                                                                      ">=",
                                                                                                                      ">",
                                                                                                                      "<",
                                                                                                                      "in",
                                                                                                                      "not_in",
                                                                                                                      "~",
                                                                                                                      "~*",
                                                                                                                      "!~",
                                                                                                                      "!~*",
                                                                                                                      "ip_range",
                                                                                                                      "!ip_range",
                                                                                                                      "dn_mask",
                                                                                                                      "!dn_mask"
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "val": {
                                                                                                                    "description": "Specifies a value to check.",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                },
                                                                                                                "required": [
                                                                                                                  "var",
                                                                                                                  "operator",
                                                                                                                  "val"
                                                                                                                ]
                                                                                                              }
                                                                                                            },
                                                                                                            "trace_config": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "enableAllActions": {
                                                                                                                  "description": "enable tracing of all actions in chains",
                                                                                                                  "type": "boolean"
                                                                                                                },
                                                                                                                "enableAllChains": {
                                                                                                                  "description": "enable tracing of all actions in child chains",
                                                                                                                  "type": "boolean"
                                                                                                                },
                                                                                                                "mode": {
                                                                                                                  "description": "Enable or disable tracing at this level.",
                                                                                                                  "type": "object",
                                                                                                                  "additionalProperties": false,
                                                                                                                  "properties": {
                                                                                                                    "enabled": {
                                                                                                                      "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                      "type": [
                                                                                                                        "number",
                                                                                                                        "string"
                                                                                                                      ],
                                                                                                                      "enum": [
                                                                                                                        "on",
                                                                                                                        "off",
                                                                                                                        "var_based"
                                                                                                                      ]
                                                                                                                    },
                                                                                                                    "var": {
                                                                                                                      "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                      "type": [
                                                                                                                        "number",
                                                                                                                        "string"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  }
                                                                                                                },
                                                                                                                "spanAttributes": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "name": {
                                                                                                                        "description": "name of attribute",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "value": {
                                                                                                                        "description": "value of attribute, can contain variables",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      }
                                                                                                                    }
                                                                                                                  }
                                                                                                                },
                                                                                                                "spanName": {
                                                                                                                  "description": "Specify name of span",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "enableSocketsTracing": {
                                                                                                                  "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                  "type": "boolean"
                                                                                                                }
                                                                                                              }
                                                                                                            },
                                                                                                            "params": {
                                                                                                              "description": "Specifies extra parameters for the actions.",
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": true
                                                                                                            },
                                                                                                            "requiredChildOneOf": {
                                                                                                              "description": "Specifies unverifed action check",
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "decision": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ],
                                                                                                                  "enum": [
                                                                                                                    "BLOCK",
                                                                                                                    "WARN"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "onlyCheckers": {
                                                                                                                  "type": "boolean"
                                                                                                                },
                                                                                                                "include": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                },
                                                                                                                "exclude": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "string"
                                                                                                                  }
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "decision"
                                                                                                              ],
                                                                                                              "allOf": [
                                                                                                                {
                                                                                                                  "if": {
                                                                                                                    "type": "object",
                                                                                                                    "required": [
                                                                                                                      "exclude"
                                                                                                                    ],
                                                                                                                    "properties": {
                                                                                                                      "exclude": {}
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "then": {
                                                                                                                    "not": {
                                                                                                                      "required": [
                                                                                                                        "include"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  }
                                                                                                                },
                                                                                                                {
                                                                                                                  "if": {
                                                                                                                    "type": "object",
                                                                                                                    "required": [
                                                                                                                      "include"
                                                                                                                    ],
                                                                                                                    "properties": {
                                                                                                                      "include": {}
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "then": {
                                                                                                                    "not": {
                                                                                                                      "required": [
                                                                                                                        "exclude"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  }
                                                                                                                }
                                                                                                              ]
                                                                                                            },
                                                                                                            "actions": {
                                                                                                              "description": "Specifies a list of actions.",
                                                                                                              "type": "array",
                                                                                                              "items": {
                                                                                                                "type": "object",
                                                                                                                "additionalProperties": false,
                                                                                                                "properties": {
                                                                                                                  "action": {
                                                                                                                    "description": "Specifies an action to perform",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ],
                                                                                                                    "enum": [
                                                                                                                      "ASN1ContentExtractor",
                                                                                                                      "Base64Decode",
                                                                                                                      "ConditionChecker",
                                                                                                                      "CheckDataSize",
                                                                                                                      "CheckMimeType",
                                                                                                                      "JsonPathExtract",
                                                                                                                      "JsonPathExtractToVars",
                                                                                                                      "JsonValidation",
                                                                                                                      "XsdValidation",
                                                                                                                      "PostFormDataToFlateJson",
                                                                                                                      "MultipartExtract",
                                                                                                                      "SetMessageFromVar",
                                                                                                                      "SetVarFromMessage",
                                                                                                                      "JwsToJson",
                                                                                                                      "XPathExtract",
                                                                                                                      "XPathExtractToVars",
                                                                                                                      "SharedMapDeleter",
                                                                                                                      "SharedMapRemover",
                                                                                                                      "SharedMapSetter",
                                                                                                                      "SharedMapGetter",
                                                                                                                      "RandomNumberToVar",
                                                                                                                      "VarsToSharedMap",
                                                                                                                      "SharedMapToVars",
                                                                                                                      "AntivirusFileChecker",
                                                                                                                      "MtomExtractor",
                                                                                                                      "JsonTransformer",
                                                                                                                      "SetVar",
                                                                                                                      "GraphQLRequestValidation",
                                                                                                                      "ProtobufValidation",
                                                                                                                      "OpenApiValidation",
                                                                                                                      "DelimiterSplitter",
                                                                                                                      "VarsToFile",
                                                                                                                      "FileToVars",
                                                                                                                      "WsdlValidation",
                                                                                                                      "HttpFilter",
                                                                                                                      "ProtobufToJson",
                                                                                                                      "FilterMds",
                                                                                                                      "OcspSignValidator",
                                                                                                                      "OcspToJson",
                                                                                                                      "ASN1ToJson",
                                                                                                                      "XmlTransformer",
                                                                                                                      "UrlEncode",
                                                                                                                      "UrlDecodeUni",
                                                                                                                      "UrlDecode",
                                                                                                                      "HexDecode",
                                                                                                                      "HexEncode",
                                                                                                                      "ToLowerCase",
                                                                                                                      "ToUpperCase",
                                                                                                                      "Utf8ToUnicode",
                                                                                                                      "Trim",
                                                                                                                      "ICAPFileChecker",
                                                                                                                      "MessageToFile",
                                                                                                                      "MultipartFormGenerateFromVar",
                                                                                                                      "HttpSender",
                                                                                                                      "MessageAccumulator",
                                                                                                                      "MessageFromAccumulator",
                                                                                                                      "MessageFromPattern",
                                                                                                                      "MultipartFormGenerateFromMessage",
                                                                                                                      "JsonPatchMessage",
                                                                                                                      "JsonPatchVar",
                                                                                                                      "DigestFromMessage",
                                                                                                                      "Base64Encode",
                                                                                                                      "HMac",
                                                                                                                      "FileToMessage",
                                                                                                                      "JwtVerifier",
                                                                                                                      "CharsetChecker",
                                                                                                                      "LdapSearch",
                                                                                                                      "UnicodeDecode",
                                                                                                                      "MessageMapper",
                                                                                                                      "SimpleRateLimiter",
                                                                                                                      "EventSourceConverter",
                                                                                                                      "LazySessionTimeChecker",
                                                                                                                      "CalculateMessageProperties"
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "id": {
                                                                                                                    "description": "An identificator of action",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "conditions": {
                                                                                                                    "description": "Specifies the conditions for performina an action.",
                                                                                                                    "type": "array",
                                                                                                                    "items": {
                                                                                                                      "type": "object",
                                                                                                                      "additionalProperties": false,
                                                                                                                      "properties": {
                                                                                                                        "var": {
                                                                                                                          "description": "Specifies a variable to check.",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "operator": {
                                                                                                                          "description": "Specifies an operator.",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ],
                                                                                                                          "enum": [
                                                                                                                            "=",
                                                                                                                            "!=",
                                                                                                                            "<=",
                                                                                                                            ">=",
                                                                                                                            ">",
                                                                                                                            "<",
                                                                                                                            "in",
                                                                                                                            "not_in",
                                                                                                                            "~",
                                                                                                                            "~*",
                                                                                                                            "!~",
                                                                                                                            "!~*",
                                                                                                                            "ip_range",
                                                                                                                            "!ip_range",
                                                                                                                            "dn_mask",
                                                                                                                            "!dn_mask"
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "val": {
                                                                                                                          "description": "Specifies a value to check.",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "required": [
                                                                                                                        "var",
                                                                                                                        "operator",
                                                                                                                        "val"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "trace_config": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "enableAllActions": {
                                                                                                                        "description": "enable tracing of all actions in chains",
                                                                                                                        "type": "boolean"
                                                                                                                      },
                                                                                                                      "enableAllChains": {
                                                                                                                        "description": "enable tracing of all actions in child chains",
                                                                                                                        "type": "boolean"
                                                                                                                      },
                                                                                                                      "mode": {
                                                                                                                        "description": "Enable or disable tracing at this level.",
                                                                                                                        "type": "object",
                                                                                                                        "additionalProperties": false,
                                                                                                                        "properties": {
                                                                                                                          "enabled": {
                                                                                                                            "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                            "type": [
                                                                                                                              "number",
                                                                                                                              "string"
                                                                                                                            ],
                                                                                                                            "enum": [
                                                                                                                              "on",
                                                                                                                              "off",
                                                                                                                              "var_based"
                                                                                                                            ]
                                                                                                                          },
                                                                                                                          "var": {
                                                                                                                            "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                            "type": [
                                                                                                                              "number",
                                                                                                                              "string"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "spanAttributes": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "name": {
                                                                                                                              "description": "name of attribute",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "value": {
                                                                                                                              "description": "value of attribute, can contain variables",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            }
                                                                                                                          }
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "spanName": {
                                                                                                                        "description": "Specify name of span",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "enableSocketsTracing": {
                                                                                                                        "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                        "type": "boolean"
                                                                                                                      }
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "params": {
                                                                                                                    "description": "Specifies extra parameters for the actions.",
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": true
                                                                                                                  },
                                                                                                                  "requiredChildOneOf": {
                                                                                                                    "description": "Specifies unverifed action check",
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "decision": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ],
                                                                                                                        "enum": [
                                                                                                                          "BLOCK",
                                                                                                                          "WARN"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "onlyCheckers": {
                                                                                                                        "type": "boolean"
                                                                                                                      },
                                                                                                                      "include": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "exclude": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "string"
                                                                                                                        }
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "decision"
                                                                                                                    ],
                                                                                                                    "allOf": [
                                                                                                                      {
                                                                                                                        "if": {
                                                                                                                          "type": "object",
                                                                                                                          "required": [
                                                                                                                            "exclude"
                                                                                                                          ],
                                                                                                                          "properties": {
                                                                                                                            "exclude": {}
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "then": {
                                                                                                                          "not": {
                                                                                                                            "required": [
                                                                                                                              "include"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        }
                                                                                                                      },
                                                                                                                      {
                                                                                                                        "if": {
                                                                                                                          "type": "object",
                                                                                                                          "required": [
                                                                                                                            "include"
                                                                                                                          ],
                                                                                                                          "properties": {
                                                                                                                            "include": {}
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "then": {
                                                                                                                          "not": {
                                                                                                                            "required": [
                                                                                                                              "exclude"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        }
                                                                                                                      }
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "actions": {
                                                                                                                    "description": "Specifies a list of actions.",
                                                                                                                    "type": "array",
                                                                                                                    "items": {
                                                                                                                      "type": "object",
                                                                                                                      "additionalProperties": false,
                                                                                                                      "properties": {
                                                                                                                        "action": {
                                                                                                                          "description": "Specifies an action to perform",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ],
                                                                                                                          "enum": [
                                                                                                                            "ASN1ContentExtractor",
                                                                                                                            "Base64Decode",
                                                                                                                            "ConditionChecker",
                                                                                                                            "CheckDataSize",
                                                                                                                            "CheckMimeType",
                                                                                                                            "JsonPathExtract",
                                                                                                                            "JsonPathExtractToVars",
                                                                                                                            "JsonValidation",
                                                                                                                            "XsdValidation",
                                                                                                                            "PostFormDataToFlateJson",
                                                                                                                            "MultipartExtract",
                                                                                                                            "SetMessageFromVar",
                                                                                                                            "SetVarFromMessage",
                                                                                                                            "JwsToJson",
                                                                                                                            "XPathExtract",
                                                                                                                            "XPathExtractToVars",
                                                                                                                            "SharedMapDeleter",
                                                                                                                            "SharedMapRemover",
                                                                                                                            "SharedMapSetter",
                                                                                                                            "SharedMapGetter",
                                                                                                                            "RandomNumberToVar",
                                                                                                                            "VarsToSharedMap",
                                                                                                                            "SharedMapToVars",
                                                                                                                            "AntivirusFileChecker",
                                                                                                                            "MtomExtractor",
                                                                                                                            "JsonTransformer",
                                                                                                                            "SetVar",
                                                                                                                            "GraphQLRequestValidation",
                                                                                                                            "ProtobufValidation",
                                                                                                                            "OpenApiValidation",
                                                                                                                            "DelimiterSplitter",
                                                                                                                            "VarsToFile",
                                                                                                                            "FileToVars",
                                                                                                                            "WsdlValidation",
                                                                                                                            "HttpFilter",
                                                                                                                            "ProtobufToJson",
                                                                                                                            "FilterMds",
                                                                                                                            "OcspSignValidator",
                                                                                                                            "OcspToJson",
                                                                                                                            "ASN1ToJson",
                                                                                                                            "XmlTransformer",
                                                                                                                            "UrlEncode",
                                                                                                                            "UrlDecodeUni",
                                                                                                                            "UrlDecode",
                                                                                                                            "HexDecode",
                                                                                                                            "HexEncode",
                                                                                                                            "ToLowerCase",
                                                                                                                            "ToUpperCase",
                                                                                                                            "Utf8ToUnicode",
                                                                                                                            "Trim",
                                                                                                                            "ICAPFileChecker",
                                                                                                                            "MessageToFile",
                                                                                                                            "MultipartFormGenerateFromVar",
                                                                                                                            "HttpSender",
                                                                                                                            "MessageAccumulator",
                                                                                                                            "MessageFromAccumulator",
                                                                                                                            "MessageFromPattern",
                                                                                                                            "MultipartFormGenerateFromMessage",
                                                                                                                            "JsonPatchMessage",
                                                                                                                            "JsonPatchVar",
                                                                                                                            "DigestFromMessage",
                                                                                                                            "Base64Encode",
                                                                                                                            "HMac",
                                                                                                                            "FileToMessage",
                                                                                                                            "JwtVerifier",
                                                                                                                            "CharsetChecker",
                                                                                                                            "LdapSearch",
                                                                                                                            "UnicodeDecode",
                                                                                                                            "MessageMapper",
                                                                                                                            "SimpleRateLimiter",
                                                                                                                            "EventSourceConverter",
                                                                                                                            "LazySessionTimeChecker",
                                                                                                                            "CalculateMessageProperties"
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "id": {
                                                                                                                          "description": "An identificator of action",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "conditions": {
                                                                                                                          "description": "Specifies the conditions for performina an action.",
                                                                                                                          "type": "array",
                                                                                                                          "items": {
                                                                                                                            "type": "object",
                                                                                                                            "additionalProperties": false,
                                                                                                                            "properties": {
                                                                                                                              "var": {
                                                                                                                                "description": "Specifies a variable to check.",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "operator": {
                                                                                                                                "description": "Specifies an operator.",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ],
                                                                                                                                "enum": [
                                                                                                                                  "=",
                                                                                                                                  "!=",
                                                                                                                                  "<=",
                                                                                                                                  ">=",
                                                                                                                                  ">",
                                                                                                                                  "<",
                                                                                                                                  "in",
                                                                                                                                  "not_in",
                                                                                                                                  "~",
                                                                                                                                  "~*",
                                                                                                                                  "!~",
                                                                                                                                  "!~*",
                                                                                                                                  "ip_range",
                                                                                                                                  "!ip_range",
                                                                                                                                  "dn_mask",
                                                                                                                                  "!dn_mask"
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "val": {
                                                                                                                                "description": "Specifies a value to check.",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "required": [
                                                                                                                              "var",
                                                                                                                              "operator",
                                                                                                                              "val"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "trace_config": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "enableAllActions": {
                                                                                                                              "description": "enable tracing of all actions in chains",
                                                                                                                              "type": "boolean"
                                                                                                                            },
                                                                                                                            "enableAllChains": {
                                                                                                                              "description": "enable tracing of all actions in child chains",
                                                                                                                              "type": "boolean"
                                                                                                                            },
                                                                                                                            "mode": {
                                                                                                                              "description": "Enable or disable tracing at this level.",
                                                                                                                              "type": "object",
                                                                                                                              "additionalProperties": false,
                                                                                                                              "properties": {
                                                                                                                                "enabled": {
                                                                                                                                  "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                  "type": [
                                                                                                                                    "number",
                                                                                                                                    "string"
                                                                                                                                  ],
                                                                                                                                  "enum": [
                                                                                                                                    "on",
                                                                                                                                    "off",
                                                                                                                                    "var_based"
                                                                                                                                  ]
                                                                                                                                },
                                                                                                                                "var": {
                                                                                                                                  "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                  "type": [
                                                                                                                                    "number",
                                                                                                                                    "string"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "spanAttributes": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "name": {
                                                                                                                                    "description": "name of attribute",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "value": {
                                                                                                                                    "description": "value of attribute, can contain variables",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  }
                                                                                                                                }
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "spanName": {
                                                                                                                              "description": "Specify name of span",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "enableSocketsTracing": {
                                                                                                                              "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                              "type": "boolean"
                                                                                                                            }
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "params": {
                                                                                                                          "description": "Specifies extra parameters for the actions.",
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": true
                                                                                                                        },
                                                                                                                        "requiredChildOneOf": {
                                                                                                                          "description": "Specifies unverifed action check",
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "decision": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ],
                                                                                                                              "enum": [
                                                                                                                                "BLOCK",
                                                                                                                                "WARN"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "onlyCheckers": {
                                                                                                                              "type": "boolean"
                                                                                                                            },
                                                                                                                            "include": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "exclude": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "string"
                                                                                                                              }
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "decision"
                                                                                                                          ],
                                                                                                                          "allOf": [
                                                                                                                            {
                                                                                                                              "if": {
                                                                                                                                "type": "object",
                                                                                                                                "required": [
                                                                                                                                  "exclude"
                                                                                                                                ],
                                                                                                                                "properties": {
                                                                                                                                  "exclude": {}
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "then": {
                                                                                                                                "not": {
                                                                                                                                  "required": [
                                                                                                                                    "include"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              }
                                                                                                                            },
                                                                                                                            {
                                                                                                                              "if": {
                                                                                                                                "type": "object",
                                                                                                                                "required": [
                                                                                                                                  "include"
                                                                                                                                ],
                                                                                                                                "properties": {
                                                                                                                                  "include": {}
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "then": {
                                                                                                                                "not": {
                                                                                                                                  "required": [
                                                                                                                                    "exclude"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              }
                                                                                                                            }
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "actions": {
                                                                                                                          "description": "Specifies a list of actions.",
                                                                                                                          "type": "array",
                                                                                                                          "items": {
                                                                                                                            "type": "object",
                                                                                                                            "additionalProperties": false,
                                                                                                                            "properties": {
                                                                                                                              "action": {
                                                                                                                                "description": "Specifies an action to perform",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ],
                                                                                                                                "enum": [
                                                                                                                                  "ASN1ContentExtractor",
                                                                                                                                  "Base64Decode",
                                                                                                                                  "ConditionChecker",
                                                                                                                                  "CheckDataSize",
                                                                                                                                  "CheckMimeType",
                                                                                                                                  "JsonPathExtract",
                                                                                                                                  "JsonPathExtractToVars",
                                                                                                                                  "JsonValidation",
                                                                                                                                  "XsdValidation",
                                                                                                                                  "PostFormDataToFlateJson",
                                                                                                                                  "MultipartExtract",
                                                                                                                                  "SetMessageFromVar",
                                                                                                                                  "SetVarFromMessage",
                                                                                                                                  "JwsToJson",
                                                                                                                                  "XPathExtract",
                                                                                                                                  "XPathExtractToVars",
                                                                                                                                  "SharedMapDeleter",
                                                                                                                                  "SharedMapRemover",
                                                                                                                                  "SharedMapSetter",
                                                                                                                                  "SharedMapGetter",
                                                                                                                                  "RandomNumberToVar",
                                                                                                                                  "VarsToSharedMap",
                                                                                                                                  "SharedMapToVars",
                                                                                                                                  "AntivirusFileChecker",
                                                                                                                                  "MtomExtractor",
                                                                                                                                  "JsonTransformer",
                                                                                                                                  "SetVar",
                                                                                                                                  "GraphQLRequestValidation",
                                                                                                                                  "ProtobufValidation",
                                                                                                                                  "OpenApiValidation",
                                                                                                                                  "DelimiterSplitter",
                                                                                                                                  "VarsToFile",
                                                                                                                                  "FileToVars",
                                                                                                                                  "WsdlValidation",
                                                                                                                                  "HttpFilter",
                                                                                                                                  "ProtobufToJson",
                                                                                                                                  "FilterMds",
                                                                                                                                  "OcspSignValidator",
                                                                                                                                  "OcspToJson",
                                                                                                                                  "ASN1ToJson",
                                                                                                                                  "XmlTransformer",
                                                                                                                                  "UrlEncode",
                                                                                                                                  "UrlDecodeUni",
                                                                                                                                  "UrlDecode",
                                                                                                                                  "HexDecode",
                                                                                                                                  "HexEncode",
                                                                                                                                  "ToLowerCase",
                                                                                                                                  "ToUpperCase",
                                                                                                                                  "Utf8ToUnicode",
                                                                                                                                  "Trim",
                                                                                                                                  "ICAPFileChecker",
                                                                                                                                  "MessageToFile",
                                                                                                                                  "MultipartFormGenerateFromVar",
                                                                                                                                  "HttpSender",
                                                                                                                                  "MessageAccumulator",
                                                                                                                                  "MessageFromAccumulator",
                                                                                                                                  "MessageFromPattern",
                                                                                                                                  "MultipartFormGenerateFromMessage",
                                                                                                                                  "JsonPatchMessage",
                                                                                                                                  "JsonPatchVar",
                                                                                                                                  "DigestFromMessage",
                                                                                                                                  "Base64Encode",
                                                                                                                                  "HMac",
                                                                                                                                  "FileToMessage",
                                                                                                                                  "JwtVerifier",
                                                                                                                                  "CharsetChecker",
                                                                                                                                  "LdapSearch",
                                                                                                                                  "UnicodeDecode",
                                                                                                                                  "MessageMapper",
                                                                                                                                  "SimpleRateLimiter",
                                                                                                                                  "EventSourceConverter",
                                                                                                                                  "LazySessionTimeChecker",
                                                                                                                                  "CalculateMessageProperties"
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "id": {
                                                                                                                                "description": "An identificator of action",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "conditions": {
                                                                                                                                "description": "Specifies the conditions for performina an action.",
                                                                                                                                "type": "array",
                                                                                                                                "items": {
                                                                                                                                  "type": "object",
                                                                                                                                  "additionalProperties": false,
                                                                                                                                  "properties": {
                                                                                                                                    "var": {
                                                                                                                                      "description": "Specifies a variable to check.",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "operator": {
                                                                                                                                      "description": "Specifies an operator.",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ],
                                                                                                                                      "enum": [
                                                                                                                                        "=",
                                                                                                                                        "!=",
                                                                                                                                        "<=",
                                                                                                                                        ">=",
                                                                                                                                        ">",
                                                                                                                                        "<",
                                                                                                                                        "in",
                                                                                                                                        "not_in",
                                                                                                                                        "~",
                                                                                                                                        "~*",
                                                                                                                                        "!~",
                                                                                                                                        "!~*",
                                                                                                                                        "ip_range",
                                                                                                                                        "!ip_range",
                                                                                                                                        "dn_mask",
                                                                                                                                        "!dn_mask"
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "val": {
                                                                                                                                      "description": "Specifies a value to check.",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "required": [
                                                                                                                                    "var",
                                                                                                                                    "operator",
                                                                                                                                    "val"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "trace_config": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "enableAllActions": {
                                                                                                                                    "description": "enable tracing of all actions in chains",
                                                                                                                                    "type": "boolean"
                                                                                                                                  },
                                                                                                                                  "enableAllChains": {
                                                                                                                                    "description": "enable tracing of all actions in child chains",
                                                                                                                                    "type": "boolean"
                                                                                                                                  },
                                                                                                                                  "mode": {
                                                                                                                                    "description": "Enable or disable tracing at this level.",
                                                                                                                                    "type": "object",
                                                                                                                                    "additionalProperties": false,
                                                                                                                                    "properties": {
                                                                                                                                      "enabled": {
                                                                                                                                        "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                        "type": [
                                                                                                                                          "number",
                                                                                                                                          "string"
                                                                                                                                        ],
                                                                                                                                        "enum": [
                                                                                                                                          "on",
                                                                                                                                          "off",
                                                                                                                                          "var_based"
                                                                                                                                        ]
                                                                                                                                      },
                                                                                                                                      "var": {
                                                                                                                                        "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                        "type": [
                                                                                                                                          "number",
                                                                                                                                          "string"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "spanAttributes": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "name": {
                                                                                                                                          "description": "name of attribute",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "value": {
                                                                                                                                          "description": "value of attribute, can contain variables",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        }
                                                                                                                                      }
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "spanName": {
                                                                                                                                    "description": "Specify name of span",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "enableSocketsTracing": {
                                                                                                                                    "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                                    "type": "boolean"
                                                                                                                                  }
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "params": {
                                                                                                                                "description": "Specifies extra parameters for the actions.",
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": true
                                                                                                                              },
                                                                                                                              "requiredChildOneOf": {
                                                                                                                                "description": "Specifies unverifed action check",
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "decision": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ],
                                                                                                                                    "enum": [
                                                                                                                                      "BLOCK",
                                                                                                                                      "WARN"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "onlyCheckers": {
                                                                                                                                    "type": "boolean"
                                                                                                                                  },
                                                                                                                                  "include": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "exclude": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "string"
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "decision"
                                                                                                                                ],
                                                                                                                                "allOf": [
                                                                                                                                  {
                                                                                                                                    "if": {
                                                                                                                                      "type": "object",
                                                                                                                                      "required": [
                                                                                                                                        "exclude"
                                                                                                                                      ],
                                                                                                                                      "properties": {
                                                                                                                                        "exclude": {}
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "then": {
                                                                                                                                      "not": {
                                                                                                                                        "required": [
                                                                                                                                          "include"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  {
                                                                                                                                    "if": {
                                                                                                                                      "type": "object",
                                                                                                                                      "required": [
                                                                                                                                        "include"
                                                                                                                                      ],
                                                                                                                                      "properties": {
                                                                                                                                        "include": {}
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "then": {
                                                                                                                                      "not": {
                                                                                                                                        "required": [
                                                                                                                                          "exclude"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "actions": {
                                                                                                                                "description": "Specifies a list of actions.",
                                                                                                                                "type": "array",
                                                                                                                                "items": {
                                                                                                                                  "type": "object",
                                                                                                                                  "additionalProperties": false,
                                                                                                                                  "properties": {
                                                                                                                                    "action": {
                                                                                                                                      "description": "Specifies an action to perform",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ],
                                                                                                                                      "enum": [
                                                                                                                                        "ASN1ContentExtractor",
                                                                                                                                        "Base64Decode",
                                                                                                                                        "ConditionChecker",
                                                                                                                                        "CheckDataSize",
                                                                                                                                        "CheckMimeType",
                                                                                                                                        "JsonPathExtract",
                                                                                                                                        "JsonPathExtractToVars",
                                                                                                                                        "JsonValidation",
                                                                                                                                        "XsdValidation",
                                                                                                                                        "PostFormDataToFlateJson",
                                                                                                                                        "MultipartExtract",
                                                                                                                                        "SetMessageFromVar",
                                                                                                                                        "SetVarFromMessage",
                                                                                                                                        "JwsToJson",
                                                                                                                                        "XPathExtract",
                                                                                                                                        "XPathExtractToVars",
                                                                                                                                        "SharedMapDeleter",
                                                                                                                                        "SharedMapRemover",
                                                                                                                                        "SharedMapSetter",
                                                                                                                                        "SharedMapGetter",
                                                                                                                                        "RandomNumberToVar",
                                                                                                                                        "VarsToSharedMap",
                                                                                                                                        "SharedMapToVars",
                                                                                                                                        "AntivirusFileChecker",
                                                                                                                                        "MtomExtractor",
                                                                                                                                        "JsonTransformer",
                                                                                                                                        "SetVar",
                                                                                                                                        "GraphQLRequestValidation",
                                                                                                                                        "ProtobufValidation",
                                                                                                                                        "OpenApiValidation",
                                                                                                                                        "DelimiterSplitter",
                                                                                                                                        "VarsToFile",
                                                                                                                                        "FileToVars",
                                                                                                                                        "WsdlValidation",
                                                                                                                                        "HttpFilter",
                                                                                                                                        "ProtobufToJson",
                                                                                                                                        "FilterMds",
                                                                                                                                        "OcspSignValidator",
                                                                                                                                        "OcspToJson",
                                                                                                                                        "ASN1ToJson",
                                                                                                                                        "XmlTransformer",
                                                                                                                                        "UrlEncode",
                                                                                                                                        "UrlDecodeUni",
                                                                                                                                        "UrlDecode",
                                                                                                                                        "HexDecode",
                                                                                                                                        "HexEncode",
                                                                                                                                        "ToLowerCase",
                                                                                                                                        "ToUpperCase",
                                                                                                                                        "Utf8ToUnicode",
                                                                                                                                        "Trim",
                                                                                                                                        "ICAPFileChecker",
                                                                                                                                        "MessageToFile",
                                                                                                                                        "MultipartFormGenerateFromVar",
                                                                                                                                        "HttpSender",
                                                                                                                                        "MessageAccumulator",
                                                                                                                                        "MessageFromAccumulator",
                                                                                                                                        "MessageFromPattern",
                                                                                                                                        "MultipartFormGenerateFromMessage",
                                                                                                                                        "JsonPatchMessage",
                                                                                                                                        "JsonPatchVar",
                                                                                                                                        "DigestFromMessage",
                                                                                                                                        "Base64Encode",
                                                                                                                                        "HMac",
                                                                                                                                        "FileToMessage",
                                                                                                                                        "JwtVerifier",
                                                                                                                                        "CharsetChecker",
                                                                                                                                        "LdapSearch",
                                                                                                                                        "UnicodeDecode",
                                                                                                                                        "MessageMapper",
                                                                                                                                        "SimpleRateLimiter",
                                                                                                                                        "EventSourceConverter",
                                                                                                                                        "LazySessionTimeChecker",
                                                                                                                                        "CalculateMessageProperties"
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "id": {
                                                                                                                                      "description": "An identificator of action",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "conditions": {
                                                                                                                                      "description": "Specifies the conditions for performina an action.",
                                                                                                                                      "type": "array",
                                                                                                                                      "items": {
                                                                                                                                        "type": "object",
                                                                                                                                        "additionalProperties": false,
                                                                                                                                        "properties": {
                                                                                                                                          "var": {
                                                                                                                                            "description": "Specifies a variable to check.",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "operator": {
                                                                                                                                            "description": "Specifies an operator.",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ],
                                                                                                                                            "enum": [
                                                                                                                                              "=",
                                                                                                                                              "!=",
                                                                                                                                              "<=",
                                                                                                                                              ">=",
                                                                                                                                              ">",
                                                                                                                                              "<",
                                                                                                                                              "in",
                                                                                                                                              "not_in",
                                                                                                                                              "~",
                                                                                                                                              "~*",
                                                                                                                                              "!~",
                                                                                                                                              "!~*",
                                                                                                                                              "ip_range",
                                                                                                                                              "!ip_range",
                                                                                                                                              "dn_mask",
                                                                                                                                              "!dn_mask"
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "val": {
                                                                                                                                            "description": "Specifies a value to check.",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "required": [
                                                                                                                                          "var",
                                                                                                                                          "operator",
                                                                                                                                          "val"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "trace_config": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "enableAllActions": {
                                                                                                                                          "description": "enable tracing of all actions in chains",
                                                                                                                                          "type": "boolean"
                                                                                                                                        },
                                                                                                                                        "enableAllChains": {
                                                                                                                                          "description": "enable tracing of all actions in child chains",
                                                                                                                                          "type": "boolean"
                                                                                                                                        },
                                                                                                                                        "mode": {
                                                                                                                                          "description": "Enable or disable tracing at this level.",
                                                                                                                                          "type": "object",
                                                                                                                                          "additionalProperties": false,
                                                                                                                                          "properties": {
                                                                                                                                            "enabled": {
                                                                                                                                              "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                              "type": [
                                                                                                                                                "number",
                                                                                                                                                "string"
                                                                                                                                              ],
                                                                                                                                              "enum": [
                                                                                                                                                "on",
                                                                                                                                                "off",
                                                                                                                                                "var_based"
                                                                                                                                              ]
                                                                                                                                            },
                                                                                                                                            "var": {
                                                                                                                                              "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                              "type": [
                                                                                                                                                "number",
                                                                                                                                                "string"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "spanAttributes": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "name": {
                                                                                                                                                "description": "name of attribute",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "value": {
                                                                                                                                                "description": "value of attribute, can contain variables",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              }
                                                                                                                                            }
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "spanName": {
                                                                                                                                          "description": "Specify name of span",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "enableSocketsTracing": {
                                                                                                                                          "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                                          "type": "boolean"
                                                                                                                                        }
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "params": {
                                                                                                                                      "description": "Specifies extra parameters for the actions.",
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": true
                                                                                                                                    },
                                                                                                                                    "requiredChildOneOf": {
                                                                                                                                      "description": "Specifies unverifed action check",
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "decision": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ],
                                                                                                                                          "enum": [
                                                                                                                                            "BLOCK",
                                                                                                                                            "WARN"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "onlyCheckers": {
                                                                                                                                          "type": "boolean"
                                                                                                                                        },
                                                                                                                                        "include": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "exclude": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "string"
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "decision"
                                                                                                                                      ],
                                                                                                                                      "allOf": [
                                                                                                                                        {
                                                                                                                                          "if": {
                                                                                                                                            "type": "object",
                                                                                                                                            "required": [
                                                                                                                                              "exclude"
                                                                                                                                            ],
                                                                                                                                            "properties": {
                                                                                                                                              "exclude": {}
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "then": {
                                                                                                                                            "not": {
                                                                                                                                              "required": [
                                                                                                                                                "include"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                          "if": {
                                                                                                                                            "type": "object",
                                                                                                                                            "required": [
                                                                                                                                              "include"
                                                                                                                                            ],
                                                                                                                                            "properties": {
                                                                                                                                              "include": {}
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "then": {
                                                                                                                                            "not": {
                                                                                                                                              "required": [
                                                                                                                                                "exclude"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "actions": {
                                                                                                                                      "description": "Specifies a list of actions.",
                                                                                                                                      "type": "array",
                                                                                                                                      "items": {
                                                                                                                                        "type": "object",
                                                                                                                                        "additionalProperties": false,
                                                                                                                                        "properties": {
                                                                                                                                          "action": {
                                                                                                                                            "description": "Specifies an action to perform",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ],
                                                                                                                                            "enum": [
                                                                                                                                              "ASN1ContentExtractor",
                                                                                                                                              "Base64Decode",
                                                                                                                                              "ConditionChecker",
                                                                                                                                              "CheckDataSize",
                                                                                                                                              "CheckMimeType",
                                                                                                                                              "JsonPathExtract",
                                                                                                                                              "JsonPathExtractToVars",
                                                                                                                                              "JsonValidation",
                                                                                                                                              "XsdValidation",
                                                                                                                                              "PostFormDataToFlateJson",
                                                                                                                                              "MultipartExtract",
                                                                                                                                              "SetMessageFromVar",
                                                                                                                                              "SetVarFromMessage",
                                                                                                                                              "JwsToJson",
                                                                                                                                              "XPathExtract",
                                                                                                                                              "XPathExtractToVars",
                                                                                                                                              "SharedMapDeleter",
                                                                                                                                              "SharedMapRemover",
                                                                                                                                              "SharedMapSetter",
                                                                                                                                              "SharedMapGetter",
                                                                                                                                              "RandomNumberToVar",
                                                                                                                                              "VarsToSharedMap",
                                                                                                                                              "SharedMapToVars",
                                                                                                                                              "AntivirusFileChecker",
                                                                                                                                              "MtomExtractor",
                                                                                                                                              "JsonTransformer",
                                                                                                                                              "SetVar",
                                                                                                                                              "GraphQLRequestValidation",
                                                                                                                                              "ProtobufValidation",
                                                                                                                                              "OpenApiValidation",
                                                                                                                                              "DelimiterSplitter",
                                                                                                                                              "VarsToFile",
                                                                                                                                              "FileToVars",
                                                                                                                                              "WsdlValidation",
                                                                                                                                              "HttpFilter",
                                                                                                                                              "ProtobufToJson",
                                                                                                                                              "FilterMds",
                                                                                                                                              "OcspSignValidator",
                                                                                                                                              "OcspToJson",
                                                                                                                                              "ASN1ToJson",
                                                                                                                                              "XmlTransformer",
                                                                                                                                              "UrlEncode",
                                                                                                                                              "UrlDecodeUni",
                                                                                                                                              "UrlDecode",
                                                                                                                                              "HexDecode",
                                                                                                                                              "HexEncode",
                                                                                                                                              "ToLowerCase",
                                                                                                                                              "ToUpperCase",
                                                                                                                                              "Utf8ToUnicode",
                                                                                                                                              "Trim",
                                                                                                                                              "ICAPFileChecker",
                                                                                                                                              "MessageToFile",
                                                                                                                                              "MultipartFormGenerateFromVar",
                                                                                                                                              "HttpSender",
                                                                                                                                              "MessageAccumulator",
                                                                                                                                              "MessageFromAccumulator",
                                                                                                                                              "MessageFromPattern",
                                                                                                                                              "MultipartFormGenerateFromMessage",
                                                                                                                                              "JsonPatchMessage",
                                                                                                                                              "JsonPatchVar",
                                                                                                                                              "DigestFromMessage",
                                                                                                                                              "Base64Encode",
                                                                                                                                              "HMac",
                                                                                                                                              "FileToMessage",
                                                                                                                                              "JwtVerifier",
                                                                                                                                              "CharsetChecker",
                                                                                                                                              "LdapSearch",
                                                                                                                                              "UnicodeDecode",
                                                                                                                                              "MessageMapper",
                                                                                                                                              "SimpleRateLimiter",
                                                                                                                                              "EventSourceConverter",
                                                                                                                                              "LazySessionTimeChecker",
                                                                                                                                              "CalculateMessageProperties"
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "id": {
                                                                                                                                            "description": "An identificator of action",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "conditions": {
                                                                                                                                            "description": "Specifies the conditions for performina an action.",
                                                                                                                                            "type": "array",
                                                                                                                                            "items": {
                                                                                                                                              "type": "object",
                                                                                                                                              "additionalProperties": false,
                                                                                                                                              "properties": {
                                                                                                                                                "var": {
                                                                                                                                                  "description": "Specifies a variable to check.",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ]
                                                                                                                                                },
                                                                                                                                                "operator": {
                                                                                                                                                  "description": "Specifies an operator.",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ],
                                                                                                                                                  "enum": [
                                                                                                                                                    "=",
                                                                                                                                                    "!=",
                                                                                                                                                    "<=",
                                                                                                                                                    ">=",
                                                                                                                                                    ">",
                                                                                                                                                    "<",
                                                                                                                                                    "in",
                                                                                                                                                    "not_in",
                                                                                                                                                    "~",
                                                                                                                                                    "~*",
                                                                                                                                                    "!~",
                                                                                                                                                    "!~*",
                                                                                                                                                    "ip_range",
                                                                                                                                                    "!ip_range",
                                                                                                                                                    "dn_mask",
                                                                                                                                                    "!dn_mask"
                                                                                                                                                  ]
                                                                                                                                                },
                                                                                                                                                "val": {
                                                                                                                                                  "description": "Specifies a value to check.",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "required": [
                                                                                                                                                "var",
                                                                                                                                                "operator",
                                                                                                                                                "val"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "trace_config": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "enableAllActions": {
                                                                                                                                                "description": "enable tracing of all actions in chains",
                                                                                                                                                "type": "boolean"
                                                                                                                                              },
                                                                                                                                              "enableAllChains": {
                                                                                                                                                "description": "enable tracing of all actions in child chains",
                                                                                                                                                "type": "boolean"
                                                                                                                                              },
                                                                                                                                              "mode": {
                                                                                                                                                "description": "Enable or disable tracing at this level.",
                                                                                                                                                "type": "object",
                                                                                                                                                "additionalProperties": false,
                                                                                                                                                "properties": {
                                                                                                                                                  "enabled": {
                                                                                                                                                    "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                                    "type": [
                                                                                                                                                      "number",
                                                                                                                                                      "string"
                                                                                                                                                    ],
                                                                                                                                                    "enum": [
                                                                                                                                                      "on",
                                                                                                                                                      "off",
                                                                                                                                                      "var_based"
                                                                                                                                                    ]
                                                                                                                                                  },
                                                                                                                                                  "var": {
                                                                                                                                                    "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                                    "type": [
                                                                                                                                                      "number",
                                                                                                                                                      "string"
                                                                                                                                                    ]
                                                                                                                                                  }
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "spanAttributes": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "name": {
                                                                                                                                                      "description": "name of attribute",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "value": {
                                                                                                                                                      "description": "value of attribute, can contain variables",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    }
                                                                                                                                                  }
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "spanName": {
                                                                                                                                                "description": "Specify name of span",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "enableSocketsTracing": {
                                                                                                                                                "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                                                "type": "boolean"
                                                                                                                                              }
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "params": {
                                                                                                                                            "description": "Specifies extra parameters for the actions.",
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": true
                                                                                                                                          },
                                                                                                                                          "requiredChildOneOf": {
                                                                                                                                            "description": "Specifies unverifed action check",
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "decision": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ],
                                                                                                                                                "enum": [
                                                                                                                                                  "BLOCK",
                                                                                                                                                  "WARN"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "onlyCheckers": {
                                                                                                                                                "type": "boolean"
                                                                                                                                              },
                                                                                                                                              "include": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "exclude": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "string"
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "decision"
                                                                                                                                            ],
                                                                                                                                            "allOf": [
                                                                                                                                              {
                                                                                                                                                "if": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "required": [
                                                                                                                                                    "exclude"
                                                                                                                                                  ],
                                                                                                                                                  "properties": {
                                                                                                                                                    "exclude": {}
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "then": {
                                                                                                                                                  "not": {
                                                                                                                                                    "required": [
                                                                                                                                                      "include"
                                                                                                                                                    ]
                                                                                                                                                  }
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              {
                                                                                                                                                "if": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "required": [
                                                                                                                                                    "include"
                                                                                                                                                  ],
                                                                                                                                                  "properties": {
                                                                                                                                                    "include": {}
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "then": {
                                                                                                                                                  "not": {
                                                                                                                                                    "required": [
                                                                                                                                                      "exclude"
                                                                                                                                                    ]
                                                                                                                                                  }
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "actions": {
                                                                                                                                            "description": "Specifies a list of actions.",
                                                                                                                                            "type": "array",
                                                                                                                                            "items": {
                                                                                                                                              "type": "object",
                                                                                                                                              "additionalProperties": false,
                                                                                                                                              "properties": {
                                                                                                                                                "action": {
                                                                                                                                                  "description": "Specifies an action to perform",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ],
                                                                                                                                                  "enum": [
                                                                                                                                                    "ASN1ContentExtractor",
                                                                                                                                                    "Base64Decode",
                                                                                                                                                    "ConditionChecker",
                                                                                                                                                    "CheckDataSize",
                                                                                                                                                    "CheckMimeType",
                                                                                                                                                    "JsonPathExtract",
                                                                                                                                                    "JsonPathExtractToVars",
                                                                                                                                                    "JsonValidation",
                                                                                                                                                    "XsdValidation",
                                                                                                                                                    "PostFormDataToFlateJson",
                                                                                                                                                    "MultipartExtract",
                                                                                                                                                    "SetMessageFromVar",
                                                                                                                                                    "SetVarFromMessage",
                                                                                                                                                    "JwsToJson",
                                                                                                                                                    "XPathExtract",
                                                                                                                                                    "XPathExtractToVars",
                                                                                                                                                    "SharedMapDeleter",
                                                                                                                                                    "SharedMapRemover",
                                                                                                                                                    "SharedMapSetter",
                                                                                                                                                    "SharedMapGetter",
                                                                                                                                                    "RandomNumberToVar",
                                                                                                                                                    "VarsToSharedMap",
                                                                                                                                                    "SharedMapToVars",
                                                                                                                                                    "AntivirusFileChecker",
                                                                                                                                                    "MtomExtractor",
                                                                                                                                                    "JsonTransformer",
                                                                                                                                                    "SetVar",
                                                                                                                                                    "GraphQLRequestValidation",
                                                                                                                                                    "ProtobufValidation",
                                                                                                                                                    "OpenApiValidation",
                                                                                                                                                    "DelimiterSplitter",
                                                                                                                                                    "VarsToFile",
                                                                                                                                                    "FileToVars",
                                                                                                                                                    "WsdlValidation",
                                                                                                                                                    "HttpFilter",
                                                                                                                                                    "ProtobufToJson",
                                                                                                                                                    "FilterMds",
                                                                                                                                                    "OcspSignValidator",
                                                                                                                                                    "OcspToJson",
                                                                                                                                                    "ASN1ToJson",
                                                                                                                                                    "XmlTransformer",
                                                                                                                                                    "UrlEncode",
                                                                                                                                                    "UrlDecodeUni",
                                                                                                                                                    "UrlDecode",
                                                                                                                                                    "HexDecode",
                                                                                                                                                    "HexEncode",
                                                                                                                                                    "ToLowerCase",
                                                                                                                                                    "ToUpperCase",
                                                                                                                                                    "Utf8ToUnicode",
                                                                                                                                                    "Trim",
                                                                                                                                                    "ICAPFileChecker",
                                                                                                                                                    "MessageToFile",
                                                                                                                                                    "MultipartFormGenerateFromVar",
                                                                                                                                                    "HttpSender",
                                                                                                                                                    "MessageAccumulator",
                                                                                                                                                    "MessageFromAccumulator",
                                                                                                                                                    "MessageFromPattern",
                                                                                                                                                    "MultipartFormGenerateFromMessage",
                                                                                                                                                    "JsonPatchMessage",
                                                                                                                                                    "JsonPatchVar",
                                                                                                                                                    "DigestFromMessage",
                                                                                                                                                    "Base64Encode",
                                                                                                                                                    "HMac",
                                                                                                                                                    "FileToMessage",
                                                                                                                                                    "JwtVerifier",
                                                                                                                                                    "CharsetChecker",
                                                                                                                                                    "LdapSearch",
                                                                                                                                                    "UnicodeDecode",
                                                                                                                                                    "MessageMapper",
                                                                                                                                                    "SimpleRateLimiter",
                                                                                                                                                    "EventSourceConverter",
                                                                                                                                                    "LazySessionTimeChecker",
                                                                                                                                                    "CalculateMessageProperties"
                                                                                                                                                  ]
                                                                                                                                                },
                                                                                                                                                "id": {
                                                                                                                                                  "description": "An identificator of action",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ]
                                                                                                                                                },
                                                                                                                                                "conditions": {
                                                                                                                                                  "description": "Specifies the conditions for performina an action.",
                                                                                                                                                  "type": "array",
                                                                                                                                                  "items": {
                                                                                                                                                    "type": "object",
                                                                                                                                                    "additionalProperties": false,
                                                                                                                                                    "properties": {
                                                                                                                                                      "var": {
                                                                                                                                                        "description": "Specifies a variable to check.",
                                                                                                                                                        "type": [
                                                                                                                                                          "number",
                                                                                                                                                          "string"
                                                                                                                                                        ]
                                                                                                                                                      },
                                                                                                                                                      "operator": {
                                                                                                                                                        "description": "Specifies an operator.",
                                                                                                                                                        "type": [
                                                                                                                                                          "number",
                                                                                                                                                          "string"
                                                                                                                                                        ],
                                                                                                                                                        "enum": [
                                                                                                                                                          "=",
                                                                                                                                                          "!=",
                                                                                                                                                          "<=",
                                                                                                                                                          ">=",
                                                                                                                                                          ">",
                                                                                                                                                          "<",
                                                                                                                                                          "in",
                                                                                                                                                          "not_in",
                                                                                                                                                          "~",
                                                                                                                                                          "~*",
                                                                                                                                                          "!~",
                                                                                                                                                          "!~*",
                                                                                                                                                          "ip_range",
                                                                                                                                                          "!ip_range",
                                                                                                                                                          "dn_mask",
                                                                                                                                                          "!dn_mask"
                                                                                                                                                        ]
                                                                                                                                                      },
                                                                                                                                                      "val": {
                                                                                                                                                        "description": "Specifies a value to check.",
                                                                                                                                                        "type": [
                                                                                                                                                          "number",
                                                                                                                                                          "string"
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    },
                                                                                                                                                    "required": [
                                                                                                                                                      "var",
                                                                                                                                                      "operator",
                                                                                                                                                      "val"
                                                                                                                                                    ]
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "trace_config": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "enableAllActions": {
                                                                                                                                                      "description": "enable tracing of all actions in chains",
                                                                                                                                                      "type": "boolean"
                                                                                                                                                    },
                                                                                                                                                    "enableAllChains": {
                                                                                                                                                      "description": "enable tracing of all actions in child chains",
                                                                                                                                                      "type": "boolean"
                                                                                                                                                    },
                                                                                                                                                    "mode": {
                                                                                                                                                      "description": "Enable or disable tracing at this level.",
                                                                                                                                                      "type": "object",
                                                                                                                                                      "additionalProperties": false,
                                                                                                                                                      "properties": {
                                                                                                                                                        "enabled": {
                                                                                                                                                          "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                                          "type": [
                                                                                                                                                            "number",
                                                                                                                                                            "string"
                                                                                                                                                          ],
                                                                                                                                                          "enum": [
                                                                                                                                                            "on",
                                                                                                                                                            "off",
                                                                                                                                                            "var_based"
                                                                                                                                                          ]
                                                                                                                                                        },
                                                                                                                                                        "var": {
                                                                                                                                                          "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                                          "type": [
                                                                                                                                                            "number",
                                                                                                                                                            "string"
                                                                                                                                                          ]
                                                                                                                                                        }
                                                                                                                                                      }
                                                                                                                                                    },
                                                                                                                                                    "spanAttributes": {
                                                                                                                                                      "type": "array",
                                                                                                                                                      "items": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "additionalProperties": false,
                                                                                                                                                        "properties": {
                                                                                                                                                          "name": {
                                                                                                                                                            "description": "name of attribute",
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "value": {
                                                                                                                                                            "description": "value of attribute, can contain variables",
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          }
                                                                                                                                                        }
                                                                                                                                                      }
                                                                                                                                                    },
                                                                                                                                                    "spanName": {
                                                                                                                                                      "description": "Specify name of span",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "enableSocketsTracing": {
                                                                                                                                                      "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                                                      "type": "boolean"
                                                                                                                                                    }
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "params": {
                                                                                                                                                  "description": "Specifies extra parameters for the actions.",
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": true
                                                                                                                                                },
                                                                                                                                                "requiredChildOneOf": {
                                                                                                                                                  "description": "Specifies unverifed action check",
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "decision": {
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ],
                                                                                                                                                      "enum": [
                                                                                                                                                        "BLOCK",
                                                                                                                                                        "WARN"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "onlyCheckers": {
                                                                                                                                                      "type": "boolean"
                                                                                                                                                    },
                                                                                                                                                    "include": {
                                                                                                                                                      "type": "array",
                                                                                                                                                      "items": {
                                                                                                                                                        "type": [
                                                                                                                                                          "number",
                                                                                                                                                          "string"
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    },
                                                                                                                                                    "exclude": {
                                                                                                                                                      "type": "array",
                                                                                                                                                      "items": {
                                                                                                                                                        "type": "string"
                                                                                                                                                      }
                                                                                                                                                    }
                                                                                                                                                  },
                                                                                                                                                  "required": [
                                                                                                                                                    "decision"
                                                                                                                                                  ],
                                                                                                                                                  "allOf": [
                                                                                                                                                    {
                                                                                                                                                      "if": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "required": [
                                                                                                                                                          "exclude"
                                                                                                                                                        ],
                                                                                                                                                        "properties": {
                                                                                                                                                          "exclude": {}
                                                                                                                                                        }
                                                                                                                                                      },
                                                                                                                                                      "then": {
                                                                                                                                                        "not": {
                                                                                                                                                          "required": [
                                                                                                                                                            "include"
                                                                                                                                                          ]
                                                                                                                                                        }
                                                                                                                                                      }
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                      "if": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "required": [
                                                                                                                                                          "include"
                                                                                                                                                        ],
                                                                                                                                                        "properties": {
                                                                                                                                                          "include": {}
                                                                                                                                                        }
                                                                                                                                                      },
                                                                                                                                                      "then": {
                                                                                                                                                        "not": {
                                                                                                                                                          "required": [
                                                                                                                                                            "exclude"
                                                                                                                                                          ]
                                                                                                                                                        }
                                                                                                                                                      }
                                                                                                                                                    }
                                                                                                                                                  ]
                                                                                                                                                },
                                                                                                                                                "actions": {
                                                                                                                                                  "description": "Specifies a list of actions.",
                                                                                                                                                  "type": "array",
                                                                                                                                                  "items": {
                                                                                                                                                    "type": "object",
                                                                                                                                                    "additionalProperties": false,
                                                                                                                                                    "properties": {
                                                                                                                                                      "action": {
                                                                                                                                                        "description": "Specifies an action to perform",
                                                                                                                                                        "type": [
                                                                                                                                                          "number",
                                                                                                                                                          "string"
                                                                                                                                                        ],
                                                                                                                                                        "enum": [
                                                                                                                                                          "ASN1ContentExtractor",
                                                                                                                                                          "Base64Decode",
                                                                                                                                                          "ConditionChecker",
                                                                                                                                                          "CheckDataSize",
                                                                                                                                                          "CheckMimeType",
                                                                                                                                                          "JsonPathExtract",
                                                                                                                                                          "JsonPathExtractToVars",
                                                                                                                                                          "JsonValidation",
                                                                                                                                                          "XsdValidation",
                                                                                                                                                          "PostFormDataToFlateJson",
                                                                                                                                                          "MultipartExtract",
                                                                                                                                                          "SetMessageFromVar",
                                                                                                                                                          "SetVarFromMessage",
                                                                                                                                                          "JwsToJson",
                                                                                                                                                          "XPathExtract",
                                                                                                                                                          "XPathExtractToVars",
                                                                                                                                                          "SharedMapDeleter",
                                                                                                                                                          "SharedMapRemover",
                                                                                                                                                          "SharedMapSetter",
                                                                                                                                                          "SharedMapGetter",
                                                                                                                                                          "RandomNumberToVar",
                                                                                                                                                          "VarsToSharedMap",
                                                                                                                                                          "SharedMapToVars",
                                                                                                                                                          "AntivirusFileChecker",
                                                                                                                                                          "MtomExtractor",
                                                                                                                                                          "JsonTransformer",
                                                                                                                                                          "SetVar",
                                                                                                                                                          "GraphQLRequestValidation",
                                                                                                                                                          "ProtobufValidation",
                                                                                                                                                          "OpenApiValidation",
                                                                                                                                                          "DelimiterSplitter",
                                                                                                                                                          "VarsToFile",
                                                                                                                                                          "FileToVars",
                                                                                                                                                          "WsdlValidation",
                                                                                                                                                          "HttpFilter",
                                                                                                                                                          "ProtobufToJson",
                                                                                                                                                          "FilterMds",
                                                                                                                                                          "OcspSignValidator",
                                                                                                                                                          "OcspToJson",
                                                                                                                                                          "ASN1ToJson",
                                                                                                                                                          "XmlTransformer",
                                                                                                                                                          "UrlEncode",
                                                                                                                                                          "UrlDecodeUni",
                                                                                                                                                          "UrlDecode",
                                                                                                                                                          "HexDecode",
                                                                                                                                                          "HexEncode",
                                                                                                                                                          "ToLowerCase",
                                                                                                                                                          "ToUpperCase",
                                                                                                                                                          "Utf8ToUnicode",
                                                                                                                                                          "Trim",
                                                                                                                                                          "ICAPFileChecker",
                                                                                                                                                          "MessageToFile",
                                                                                                                                                          "MultipartFormGenerateFromVar",
                                                                                                                                                          "HttpSender",
                                                                                                                                                          "MessageAccumulator",
                                                                                                                                                          "MessageFromAccumulator",
                                                                                                                                                          "MessageFromPattern",
                                                                                                                                                          "MultipartFormGenerateFromMessage",
                                                                                                                                                          "JsonPatchMessage",
                                                                                                                                                          "JsonPatchVar",
                                                                                                                                                          "DigestFromMessage",
                                                                                                                                                          "Base64Encode",
                                                                                                                                                          "HMac",
                                                                                                                                                          "FileToMessage",
                                                                                                                                                          "JwtVerifier",
                                                                                                                                                          "CharsetChecker",
                                                                                                                                                          "LdapSearch",
                                                                                                                                                          "UnicodeDecode",
                                                                                                                                                          "MessageMapper",
                                                                                                                                                          "SimpleRateLimiter",
                                                                                                                                                          "EventSourceConverter",
                                                                                                                                                          "LazySessionTimeChecker",
                                                                                                                                                          "CalculateMessageProperties"
                                                                                                                                                        ]
                                                                                                                                                      },
                                                                                                                                                      "id": {
                                                                                                                                                        "description": "An identificator of action",
                                                                                                                                                        "type": [
                                                                                                                                                          "number",
                                                                                                                                                          "string"
                                                                                                                                                        ]
                                                                                                                                                      },
                                                                                                                                                      "conditions": {
                                                                                                                                                        "description": "Specifies the conditions for performina an action.",
                                                                                                                                                        "type": "array",
                                                                                                                                                        "items": {
                                                                                                                                                          "type": "object",
                                                                                                                                                          "additionalProperties": false,
                                                                                                                                                          "properties": {
                                                                                                                                                            "var": {
                                                                                                                                                              "description": "Specifies a variable to check.",
                                                                                                                                                              "type": [
                                                                                                                                                                "number",
                                                                                                                                                                "string"
                                                                                                                                                              ]
                                                                                                                                                            },
                                                                                                                                                            "operator": {
                                                                                                                                                              "description": "Specifies an operator.",
                                                                                                                                                              "type": [
                                                                                                                                                                "number",
                                                                                                                                                                "string"
                                                                                                                                                              ],
                                                                                                                                                              "enum": [
                                                                                                                                                                "=",
                                                                                                                                                                "!=",
                                                                                                                                                                "<=",
                                                                                                                                                                ">=",
                                                                                                                                                                ">",
                                                                                                                                                                "<",
                                                                                                                                                                "in",
                                                                                                                                                                "not_in",
                                                                                                                                                                "~",
                                                                                                                                                                "~*",
                                                                                                                                                                "!~",
                                                                                                                                                                "!~*",
                                                                                                                                                                "ip_range",
                                                                                                                                                                "!ip_range",
                                                                                                                                                                "dn_mask",
                                                                                                                                                                "!dn_mask"
                                                                                                                                                              ]
                                                                                                                                                            },
                                                                                                                                                            "val": {
                                                                                                                                                              "description": "Specifies a value to check.",
                                                                                                                                                              "type": [
                                                                                                                                                                "number",
                                                                                                                                                                "string"
                                                                                                                                                              ]
                                                                                                                                                            }
                                                                                                                                                          },
                                                                                                                                                          "required": [
                                                                                                                                                            "var",
                                                                                                                                                            "operator",
                                                                                                                                                            "val"
                                                                                                                                                          ]
                                                                                                                                                        }
                                                                                                                                                      },
                                                                                                                                                      "trace_config": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "additionalProperties": false,
                                                                                                                                                        "properties": {
                                                                                                                                                          "enableAllActions": {
                                                                                                                                                            "description": "enable tracing of all actions in chains",
                                                                                                                                                            "type": "boolean"
                                                                                                                                                          },
                                                                                                                                                          "enableAllChains": {
                                                                                                                                                            "description": "enable tracing of all actions in child chains",
                                                                                                                                                            "type": "boolean"
                                                                                                                                                          },
                                                                                                                                                          "mode": {
                                                                                                                                                            "description": "Enable or disable tracing at this level.",
                                                                                                                                                            "type": "object",
                                                                                                                                                            "additionalProperties": false,
                                                                                                                                                            "properties": {
                                                                                                                                                              "enabled": {
                                                                                                                                                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                                                "type": [
                                                                                                                                                                  "number",
                                                                                                                                                                  "string"
                                                                                                                                                                ],
                                                                                                                                                                "enum": [
                                                                                                                                                                  "on",
                                                                                                                                                                  "off",
                                                                                                                                                                  "var_based"
                                                                                                                                                                ]
                                                                                                                                                              },
                                                                                                                                                              "var": {
                                                                                                                                                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                                                "type": [
                                                                                                                                                                  "number",
                                                                                                                                                                  "string"
                                                                                                                                                                ]
                                                                                                                                                              }
                                                                                                                                                            }
                                                                                                                                                          },
                                                                                                                                                          "spanAttributes": {
                                                                                                                                                            "type": "array",
                                                                                                                                                            "items": {
                                                                                                                                                              "type": "object",
                                                                                                                                                              "additionalProperties": false,
                                                                                                                                                              "properties": {
                                                                                                                                                                "name": {
                                                                                                                                                                  "description": "name of attribute",
                                                                                                                                                                  "type": [
                                                                                                                                                                    "number",
                                                                                                                                                                    "string"
                                                                                                                                                                  ]
                                                                                                                                                                },
                                                                                                                                                                "value": {
                                                                                                                                                                  "description": "value of attribute, can contain variables",
                                                                                                                                                                  "type": [
                                                                                                                                                                    "number",
                                                                                                                                                                    "string"
                                                                                                                                                                  ]
                                                                                                                                                                }
                                                                                                                                                              }
                                                                                                                                                            }
                                                                                                                                                          },
                                                                                                                                                          "spanName": {
                                                                                                                                                            "description": "Specify name of span",
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "enableSocketsTracing": {
                                                                                                                                                            "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                                                            "type": "boolean"
                                                                                                                                                          }
                                                                                                                                                        }
                                                                                                                                                      },
                                                                                                                                                      "params": {
                                                                                                                                                        "description": "Specifies extra parameters for the actions.",
                                                                                                                                                        "type": "object",
                                                                                                                                                        "additionalProperties": true
                                                                                                                                                      },
                                                                                                                                                      "requiredChildOneOf": {
                                                                                                                                                        "description": "Specifies unverifed action check",
                                                                                                                                                        "type": "object",
                                                                                                                                                        "additionalProperties": false,
                                                                                                                                                        "properties": {
                                                                                                                                                          "decision": {
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ],
                                                                                                                                                            "enum": [
                                                                                                                                                              "BLOCK",
                                                                                                                                                              "WARN"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "onlyCheckers": {
                                                                                                                                                            "type": "boolean"
                                                                                                                                                          },
                                                                                                                                                          "include": {
                                                                                                                                                            "type": "array",
                                                                                                                                                            "items": {
                                                                                                                                                              "type": [
                                                                                                                                                                "number",
                                                                                                                                                                "string"
                                                                                                                                                              ]
                                                                                                                                                            }
                                                                                                                                                          },
                                                                                                                                                          "exclude": {
                                                                                                                                                            "type": "array",
                                                                                                                                                            "items": {
                                                                                                                                                              "type": "string"
                                                                                                                                                            }
                                                                                                                                                          }
                                                                                                                                                        },
                                                                                                                                                        "required": [
                                                                                                                                                          "decision"
                                                                                                                                                        ],
                                                                                                                                                        "allOf": [
                                                                                                                                                          {
                                                                                                                                                            "if": {
                                                                                                                                                              "type": "object",
                                                                                                                                                              "required": [
                                                                                                                                                                "exclude"
                                                                                                                                                              ],
                                                                                                                                                              "properties": {
                                                                                                                                                                "exclude": {}
                                                                                                                                                              }
                                                                                                                                                            },
                                                                                                                                                            "then": {
                                                                                                                                                              "not": {
                                                                                                                                                                "required": [
                                                                                                                                                                  "include"
                                                                                                                                                                ]
                                                                                                                                                              }
                                                                                                                                                            }
                                                                                                                                                          },
                                                                                                                                                          {
                                                                                                                                                            "if": {
                                                                                                                                                              "type": "object",
                                                                                                                                                              "required": [
                                                                                                                                                                "include"
                                                                                                                                                              ],
                                                                                                                                                              "properties": {
                                                                                                                                                                "include": {}
                                                                                                                                                              }
                                                                                                                                                            },
                                                                                                                                                            "then": {
                                                                                                                                                              "not": {
                                                                                                                                                                "required": [
                                                                                                                                                                  "exclude"
                                                                                                                                                                ]
                                                                                                                                                              }
                                                                                                                                                            }
                                                                                                                                                          }
                                                                                                                                                        ]
                                                                                                                                                      },
                                                                                                                                                      "actions": {
                                                                                                                                                        "description": "Specifies a list of actions.",
                                                                                                                                                        "type": "array",
                                                                                                                                                        "items": {
                                                                                                                                                          "type": "object",
                                                                                                                                                          "additionalProperties": false,
                                                                                                                                                          "properties": {
                                                                                                                                                            "action": {
                                                                                                                                                              "description": "Specifies an action to perform",
                                                                                                                                                              "type": [
                                                                                                                                                                "number",
                                                                                                                                                                "string"
                                                                                                                                                              ],
                                                                                                                                                              "enum": [
                                                                                                                                                                "ASN1ContentExtractor",
                                                                                                                                                                "Base64Decode",
                                                                                                                                                                "ConditionChecker",
                                                                                                                                                                "CheckDataSize",
                                                                                                                                                                "CheckMimeType",
                                                                                                                                                                "JsonPathExtract",
                                                                                                                                                                "JsonPathExtractToVars",
                                                                                                                                                                "JsonValidation",
                                                                                                                                                                "XsdValidation",
                                                                                                                                                                "PostFormDataToFlateJson",
                                                                                                                                                                "MultipartExtract",
                                                                                                                                                                "SetMessageFromVar",
                                                                                                                                                                "SetVarFromMessage",
                                                                                                                                                                "JwsToJson",
                                                                                                                                                                "XPathExtract",
                                                                                                                                                                "XPathExtractToVars",
                                                                                                                                                                "SharedMapDeleter",
                                                                                                                                                                "SharedMapRemover",
                                                                                                                                                                "SharedMapSetter",
                                                                                                                                                                "SharedMapGetter",
                                                                                                                                                                "RandomNumberToVar",
                                                                                                                                                                "VarsToSharedMap",
                                                                                                                                                                "SharedMapToVars",
                                                                                                                                                                "AntivirusFileChecker",
                                                                                                                                                                "MtomExtractor",
                                                                                                                                                                "JsonTransformer",
                                                                                                                                                                "SetVar",
                                                                                                                                                                "GraphQLRequestValidation",
                                                                                                                                                                "ProtobufValidation",
                                                                                                                                                                "OpenApiValidation",
                                                                                                                                                                "DelimiterSplitter",
                                                                                                                                                                "VarsToFile",
                                                                                                                                                                "FileToVars",
                                                                                                                                                                "WsdlValidation",
                                                                                                                                                                "HttpFilter",
                                                                                                                                                                "ProtobufToJson",
                                                                                                                                                                "FilterMds",
                                                                                                                                                                "OcspSignValidator",
                                                                                                                                                                "OcspToJson",
                                                                                                                                                                "ASN1ToJson",
                                                                                                                                                                "XmlTransformer",
                                                                                                                                                                "UrlEncode",
                                                                                                                                                                "UrlDecodeUni",
                                                                                                                                                                "UrlDecode",
                                                                                                                                                                "HexDecode",
                                                                                                                                                                "HexEncode",
                                                                                                                                                                "ToLowerCase",
                                                                                                                                                                "ToUpperCase",
                                                                                                                                                                "Utf8ToUnicode",
                                                                                                                                                                "Trim",
                                                                                                                                                                "ICAPFileChecker",
                                                                                                                                                                "MessageToFile",
                                                                                                                                                                "MultipartFormGenerateFromVar",
                                                                                                                                                                "HttpSender",
                                                                                                                                                                "MessageAccumulator",
                                                                                                                                                                "MessageFromAccumulator",
                                                                                                                                                                "MessageFromPattern",
                                                                                                                                                                "MultipartFormGenerateFromMessage",
                                                                                                                                                                "JsonPatchMessage",
                                                                                                                                                                "JsonPatchVar",
                                                                                                                                                                "DigestFromMessage",
                                                                                                                                                                "Base64Encode",
                                                                                                                                                                "HMac",
                                                                                                                                                                "FileToMessage",
                                                                                                                                                                "JwtVerifier",
                                                                                                                                                                "CharsetChecker",
                                                                                                                                                                "LdapSearch",
                                                                                                                                                                "UnicodeDecode",
                                                                                                                                                                "MessageMapper",
                                                                                                                                                                "SimpleRateLimiter",
                                                                                                                                                                "EventSourceConverter",
                                                                                                                                                                "LazySessionTimeChecker",
                                                                                                                                                                "CalculateMessageProperties"
                                                                                                                                                              ]
                                                                                                                                                            },
                                                                                                                                                            "id": {
                                                                                                                                                              "description": "An identificator of action",
                                                                                                                                                              "type": [
                                                                                                                                                                "number",
                                                                                                                                                                "string"
                                                                                                                                                              ]
                                                                                                                                                            },
                                                                                                                                                            "conditions": {
                                                                                                                                                              "description": "Specifies the conditions for performina an action.",
                                                                                                                                                              "type": "array",
                                                                                                                                                              "items": {
                                                                                                                                                                "type": "object",
                                                                                                                                                                "additionalProperties": false,
                                                                                                                                                                "properties": {
                                                                                                                                                                  "var": {
                                                                                                                                                                    "description": "Specifies a variable to check.",
                                                                                                                                                                    "type": [
                                                                                                                                                                      "number",
                                                                                                                                                                      "string"
                                                                                                                                                                    ]
                                                                                                                                                                  },
                                                                                                                                                                  "operator": {
                                                                                                                                                                    "description": "Specifies an operator.",
                                                                                                                                                                    "type": [
                                                                                                                                                                      "number",
                                                                                                                                                                      "string"
                                                                                                                                                                    ],
                                                                                                                                                                    "enum": [
                                                                                                                                                                      "=",
                                                                                                                                                                      "!=",
                                                                                                                                                                      "<=",
                                                                                                                                                                      ">=",
                                                                                                                                                                      ">",
                                                                                                                                                                      "<",
                                                                                                                                                                      "in",
                                                                                                                                                                      "not_in",
                                                                                                                                                                      "~",
                                                                                                                                                                      "~*",
                                                                                                                                                                      "!~",
                                                                                                                                                                      "!~*",
                                                                                                                                                                      "ip_range",
                                                                                                                                                                      "!ip_range",
                                                                                                                                                                      "dn_mask",
                                                                                                                                                                      "!dn_mask"
                                                                                                                                                                    ]
                                                                                                                                                                  },
                                                                                                                                                                  "val": {
                                                                                                                                                                    "description": "Specifies a value to check.",
                                                                                                                                                                    "type": [
                                                                                                                                                                      "number",
                                                                                                                                                                      "string"
                                                                                                                                                                    ]
                                                                                                                                                                  }
                                                                                                                                                                },
                                                                                                                                                                "required": [
                                                                                                                                                                  "var",
                                                                                                                                                                  "operator",
                                                                                                                                                                  "val"
                                                                                                                                                                ]
                                                                                                                                                              }
                                                                                                                                                            },
                                                                                                                                                            "trace_config": {
                                                                                                                                                              "type": "object",
                                                                                                                                                              "additionalProperties": false,
                                                                                                                                                              "properties": {
                                                                                                                                                                "enableAllActions": {
                                                                                                                                                                  "description": "enable tracing of all actions in chains",
                                                                                                                                                                  "type": "boolean"
                                                                                                                                                                },
                                                                                                                                                                "enableAllChains": {
                                                                                                                                                                  "description": "enable tracing of all actions in child chains",
                                                                                                                                                                  "type": "boolean"
                                                                                                                                                                },
                                                                                                                                                                "mode": {
                                                                                                                                                                  "description": "Enable or disable tracing at this level.",
                                                                                                                                                                  "type": "object",
                                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                                  "properties": {
                                                                                                                                                                    "enabled": {
                                                                                                                                                                      "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                                                      "type": [
                                                                                                                                                                        "number",
                                                                                                                                                                        "string"
                                                                                                                                                                      ],
                                                                                                                                                                      "enum": [
                                                                                                                                                                        "on",
                                                                                                                                                                        "off",
                                                                                                                                                                        "var_based"
                                                                                                                                                                      ]
                                                                                                                                                                    },
                                                                                                                                                                    "var": {
                                                                                                                                                                      "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                                                      "type": [
                                                                                                                                                                        "number",
                                                                                                                                                                        "string"
                                                                                                                                                                      ]
                                                                                                                                                                    }
                                                                                                                                                                  }
                                                                                                                                                                },
                                                                                                                                                                "spanAttributes": {
                                                                                                                                                                  "type": "array",
                                                                                                                                                                  "items": {
                                                                                                                                                                    "type": "object",
                                                                                                                                                                    "additionalProperties": false,
                                                                                                                                                                    "properties": {
                                                                                                                                                                      "name": {
                                                                                                                                                                        "description": "name of attribute",
                                                                                                                                                                        "type": [
                                                                                                                                                                          "number",
                                                                                                                                                                          "string"
                                                                                                                                                                        ]
                                                                                                                                                                      },
                                                                                                                                                                      "value": {
                                                                                                                                                                        "description": "value of attribute, can contain variables",
                                                                                                                                                                        "type": [
                                                                                                                                                                          "number",
                                                                                                                                                                          "string"
                                                                                                                                                                        ]
                                                                                                                                                                      }
                                                                                                                                                                    }
                                                                                                                                                                  }
                                                                                                                                                                },
                                                                                                                                                                "spanName": {
                                                                                                                                                                  "description": "Specify name of span",
                                                                                                                                                                  "type": [
                                                                                                                                                                    "number",
                                                                                                                                                                    "string"
                                                                                                                                                                  ]
                                                                                                                                                                },
                                                                                                                                                                "enableSocketsTracing": {
                                                                                                                                                                  "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                                                                  "type": "boolean"
                                                                                                                                                                }
                                                                                                                                                              }
                                                                                                                                                            },
                                                                                                                                                            "params": {
                                                                                                                                                              "description": "Specifies extra parameters for the actions.",
                                                                                                                                                              "type": "object",
                                                                                                                                                              "additionalProperties": true
                                                                                                                                                            },
                                                                                                                                                            "requiredChildOneOf": {
                                                                                                                                                              "description": "Specifies unverifed action check",
                                                                                                                                                              "type": "object",
                                                                                                                                                              "additionalProperties": false,
                                                                                                                                                              "properties": {
                                                                                                                                                                "decision": {
                                                                                                                                                                  "type": [
                                                                                                                                                                    "number",
                                                                                                                                                                    "string"
                                                                                                                                                                  ],
                                                                                                                                                                  "enum": [
                                                                                                                                                                    "BLOCK",
                                                                                                                                                                    "WARN"
                                                                                                                                                                  ]
                                                                                                                                                                },
                                                                                                                                                                "onlyCheckers": {
                                                                                                                                                                  "type": "boolean"
                                                                                                                                                                },
                                                                                                                                                                "include": {
                                                                                                                                                                  "type": "array",
                                                                                                                                                                  "items": {
                                                                                                                                                                    "type": [
                                                                                                                                                                      "number",
                                                                                                                                                                      "string"
                                                                                                                                                                    ]
                                                                                                                                                                  }
                                                                                                                                                                },
                                                                                                                                                                "exclude": {
                                                                                                                                                                  "type": "array",
                                                                                                                                                                  "items": {
                                                                                                                                                                    "type": "string"
                                                                                                                                                                  }
                                                                                                                                                                }
                                                                                                                                                              },
                                                                                                                                                              "required": [
                                                                                                                                                                "decision"
                                                                                                                                                              ],
                                                                                                                                                              "allOf": [
                                                                                                                                                                {
                                                                                                                                                                  "if": {
                                                                                                                                                                    "type": "object",
                                                                                                                                                                    "required": [
                                                                                                                                                                      "exclude"
                                                                                                                                                                    ],
                                                                                                                                                                    "properties": {
                                                                                                                                                                      "exclude": {}
                                                                                                                                                                    }
                                                                                                                                                                  },
                                                                                                                                                                  "then": {
                                                                                                                                                                    "not": {
                                                                                                                                                                      "required": [
                                                                                                                                                                        "include"
                                                                                                                                                                      ]
                                                                                                                                                                    }
                                                                                                                                                                  }
                                                                                                                                                                },
                                                                                                                                                                {
                                                                                                                                                                  "if": {
                                                                                                                                                                    "type": "object",
                                                                                                                                                                    "required": [
                                                                                                                                                                      "include"
                                                                                                                                                                    ],
                                                                                                                                                                    "properties": {
                                                                                                                                                                      "include": {}
                                                                                                                                                                    }
                                                                                                                                                                  },
                                                                                                                                                                  "then": {
                                                                                                                                                                    "not": {
                                                                                                                                                                      "required": [
                                                                                                                                                                        "exclude"
                                                                                                                                                                      ]
                                                                                                                                                                    }
                                                                                                                                                                  }
                                                                                                                                                                }
                                                                                                                                                              ]
                                                                                                                                                            },
                                                                                                                                                            "actions": {
                                                                                                                                                              "description": "Specifies a list of actions.",
                                                                                                                                                              "type": "array",
                                                                                                                                                              "items": {
                                                                                                                                                                "type": "object",
                                                                                                                                                                "additionalProperties": false,
                                                                                                                                                                "properties": {
                                                                                                                                                                  "action": {
                                                                                                                                                                    "description": "Specifies an action to perform",
                                                                                                                                                                    "type": [
                                                                                                                                                                      "number",
                                                                                                                                                                      "string"
                                                                                                                                                                    ],
                                                                                                                                                                    "enum": [
                                                                                                                                                                      "ASN1ContentExtractor",
                                                                                                                                                                      "Base64Decode",
                                                                                                                                                                      "ConditionChecker",
                                                                                                                                                                      "CheckDataSize",
                                                                                                                                                                      "CheckMimeType",
                                                                                                                                                                      "JsonPathExtract",
                                                                                                                                                                      "JsonPathExtractToVars",
                                                                                                                                                                      "JsonValidation",
                                                                                                                                                                      "XsdValidation",
                                                                                                                                                                      "PostFormDataToFlateJson",
                                                                                                                                                                      "MultipartExtract",
                                                                                                                                                                      "SetMessageFromVar",
                                                                                                                                                                      "SetVarFromMessage",
                                                                                                                                                                      "JwsToJson",
                                                                                                                                                                      "XPathExtract",
                                                                                                                                                                      "XPathExtractToVars",
                                                                                                                                                                      "SharedMapDeleter",
                                                                                                                                                                      "SharedMapRemover",
                                                                                                                                                                      "SharedMapSetter",
                                                                                                                                                                      "SharedMapGetter",
                                                                                                                                                                      "RandomNumberToVar",
                                                                                                                                                                      "VarsToSharedMap",
                                                                                                                                                                      "SharedMapToVars",
                                                                                                                                                                      "AntivirusFileChecker",
                                                                                                                                                                      "MtomExtractor",
                                                                                                                                                                      "JsonTransformer",
                                                                                                                                                                      "SetVar",
                                                                                                                                                                      "GraphQLRequestValidation",
                                                                                                                                                                      "ProtobufValidation",
                                                                                                                                                                      "OpenApiValidation",
                                                                                                                                                                      "DelimiterSplitter",
                                                                                                                                                                      "VarsToFile",
                                                                                                                                                                      "FileToVars",
                                                                                                                                                                      "WsdlValidation",
                                                                                                                                                                      "HttpFilter",
                                                                                                                                                                      "ProtobufToJson",
                                                                                                                                                                      "FilterMds",
                                                                                                                                                                      "OcspSignValidator",
                                                                                                                                                                      "OcspToJson",
                                                                                                                                                                      "ASN1ToJson",
                                                                                                                                                                      "XmlTransformer",
                                                                                                                                                                      "UrlEncode",
                                                                                                                                                                      "UrlDecodeUni",
                                                                                                                                                                      "UrlDecode",
                                                                                                                                                                      "HexDecode",
                                                                                                                                                                      "HexEncode",
                                                                                                                                                                      "ToLowerCase",
                                                                                                                                                                      "ToUpperCase",
                                                                                                                                                                      "Utf8ToUnicode",
                                                                                                                                                                      "Trim",
                                                                                                                                                                      "ICAPFileChecker",
                                                                                                                                                                      "MessageToFile",
                                                                                                                                                                      "MultipartFormGenerateFromVar",
                                                                                                                                                                      "HttpSender",
                                                                                                                                                                      "MessageAccumulator",
                                                                                                                                                                      "MessageFromAccumulator",
                                                                                                                                                                      "MessageFromPattern",
                                                                                                                                                                      "MultipartFormGenerateFromMessage",
                                                                                                                                                                      "JsonPatchMessage",
                                                                                                                                                                      "JsonPatchVar",
                                                                                                                                                                      "DigestFromMessage",
                                                                                                                                                                      "Base64Encode",
                                                                                                                                                                      "HMac",
                                                                                                                                                                      "FileToMessage",
                                                                                                                                                                      "JwtVerifier",
                                                                                                                                                                      "CharsetChecker",
                                                                                                                                                                      "LdapSearch",
                                                                                                                                                                      "UnicodeDecode",
                                                                                                                                                                      "MessageMapper",
                                                                                                                                                                      "SimpleRateLimiter",
                                                                                                                                                                      "EventSourceConverter",
                                                                                                                                                                      "LazySessionTimeChecker",
                                                                                                                                                                      "CalculateMessageProperties"
                                                                                                                                                                    ]
                                                                                                                                                                  },
                                                                                                                                                                  "id": {
                                                                                                                                                                    "description": "An identificator of action",
                                                                                                                                                                    "type": [
                                                                                                                                                                      "number",
                                                                                                                                                                      "string"
                                                                                                                                                                    ]
                                                                                                                                                                  },
                                                                                                                                                                  "conditions": {
                                                                                                                                                                    "description": "Specifies the conditions for performina an action.",
                                                                                                                                                                    "type": "array",
                                                                                                                                                                    "items": {
                                                                                                                                                                      "type": "object",
                                                                                                                                                                      "additionalProperties": false,
                                                                                                                                                                      "properties": {
                                                                                                                                                                        "var": {
                                                                                                                                                                          "description": "Specifies a variable to check.",
                                                                                                                                                                          "type": [
                                                                                                                                                                            "number",
                                                                                                                                                                            "string"
                                                                                                                                                                          ]
                                                                                                                                                                        },
                                                                                                                                                                        "operator": {
                                                                                                                                                                          "description": "Specifies an operator.",
                                                                                                                                                                          "type": [
                                                                                                                                                                            "number",
                                                                                                                                                                            "string"
                                                                                                                                                                          ],
                                                                                                                                                                          "enum": [
                                                                                                                                                                            "=",
                                                                                                                                                                            "!=",
                                                                                                                                                                            "<=",
                                                                                                                                                                            ">=",
                                                                                                                                                                            ">",
                                                                                                                                                                            "<",
                                                                                                                                                                            "in",
                                                                                                                                                                            "not_in",
                                                                                                                                                                            "~",
                                                                                                                                                                            "~*",
                                                                                                                                                                            "!~",
                                                                                                                                                                            "!~*",
                                                                                                                                                                            "ip_range",
                                                                                                                                                                            "!ip_range",
                                                                                                                                                                            "dn_mask",
                                                                                                                                                                            "!dn_mask"
                                                                                                                                                                          ]
                                                                                                                                                                        },
                                                                                                                                                                        "val": {
                                                                                                                                                                          "description": "Specifies a value to check.",
                                                                                                                                                                          "type": [
                                                                                                                                                                            "number",
                                                                                                                                                                            "string"
                                                                                                                                                                          ]
                                                                                                                                                                        }
                                                                                                                                                                      },
                                                                                                                                                                      "required": [
                                                                                                                                                                        "var",
                                                                                                                                                                        "operator",
                                                                                                                                                                        "val"
                                                                                                                                                                      ]
                                                                                                                                                                    }
                                                                                                                                                                  },
                                                                                                                                                                  "params": {
                                                                                                                                                                    "description": "Specifies extra parameters for the actions.",
                                                                                                                                                                    "type": "object",
                                                                                                                                                                    "additionalProperties": true
                                                                                                                                                                  }
                                                                                                                                                                },
                                                                                                                                                                "required": [
                                                                                                                                                                  "action"
                                                                                                                                                                ]
                                                                                                                                                              }
                                                                                                                                                            },
                                                                                                                                                            "audit": {
                                                                                                                                                              "type": "object",
                                                                                                                                                              "additionalProperties": false,
                                                                                                                                                              "properties": {
                                                                                                                                                                "enabled": {
                                                                                                                                                                  "type": "boolean"
                                                                                                                                                                },
                                                                                                                                                                "events": {
                                                                                                                                                                  "type": "array",
                                                                                                                                                                  "items": {
                                                                                                                                                                    "type": "object",
                                                                                                                                                                    "additionalProperties": false,
                                                                                                                                                                    "properties": {
                                                                                                                                                                      "name": {
                                                                                                                                                                        "type": [
                                                                                                                                                                          "number",
                                                                                                                                                                          "string"
                                                                                                                                                                        ]
                                                                                                                                                                      },
                                                                                                                                                                      "message": {
                                                                                                                                                                        "type": [
                                                                                                                                                                          "number",
                                                                                                                                                                          "string"
                                                                                                                                                                        ]
                                                                                                                                                                      },
                                                                                                                                                                      "conditions": {
                                                                                                                                                                        "type": "array",
                                                                                                                                                                        "items": {
                                                                                                                                                                          "type": "object",
                                                                                                                                                                          "additionalProperties": false,
                                                                                                                                                                          "properties": {
                                                                                                                                                                            "var": {
                                                                                                                                                                              "description": "Specifies a variable to check.",
                                                                                                                                                                              "type": [
                                                                                                                                                                                "number",
                                                                                                                                                                                "string"
                                                                                                                                                                              ]
                                                                                                                                                                            },
                                                                                                                                                                            "operator": {
                                                                                                                                                                              "description": "Specifies an operator.",
                                                                                                                                                                              "type": [
                                                                                                                                                                                "number",
                                                                                                                                                                                "string"
                                                                                                                                                                              ],
                                                                                                                                                                              "enum": [
                                                                                                                                                                                "=",
                                                                                                                                                                                "!=",
                                                                                                                                                                                "<=",
                                                                                                                                                                                ">=",
                                                                                                                                                                                ">",
                                                                                                                                                                                "<",
                                                                                                                                                                                "in",
                                                                                                                                                                                "not_in",
                                                                                                                                                                                "~",
                                                                                                                                                                                "~*",
                                                                                                                                                                                "!~",
                                                                                                                                                                                "!~*",
                                                                                                                                                                                "ip_range",
                                                                                                                                                                                "!ip_range",
                                                                                                                                                                                "dn_mask",
                                                                                                                                                                                "!dn_mask"
                                                                                                                                                                              ]
                                                                                                                                                                            },
                                                                                                                                                                            "val": {
                                                                                                                                                                              "description": "Specifies a value to check.",
                                                                                                                                                                              "type": [
                                                                                                                                                                                "number",
                                                                                                                                                                                "string"
                                                                                                                                                                              ]
                                                                                                                                                                            }
                                                                                                                                                                          },
                                                                                                                                                                          "required": [
                                                                                                                                                                            "var",
                                                                                                                                                                            "operator",
                                                                                                                                                                            "val"
                                                                                                                                                                          ]
                                                                                                                                                                        }
                                                                                                                                                                      },
                                                                                                                                                                      "fields": {
                                                                                                                                                                        "type": "array",
                                                                                                                                                                        "items": {
                                                                                                                                                                          "type": "object",
                                                                                                                                                                          "additionalProperties": false,
                                                                                                                                                                          "properties": {
                                                                                                                                                                            "key": {
                                                                                                                                                                              "type": [
                                                                                                                                                                                "number",
                                                                                                                                                                                "string"
                                                                                                                                                                              ]
                                                                                                                                                                            },
                                                                                                                                                                            "val": {
                                                                                                                                                                              "type": [
                                                                                                                                                                                "number",
                                                                                                                                                                                "string"
                                                                                                                                                                              ]
                                                                                                                                                                            }
                                                                                                                                                                          },
                                                                                                                                                                          "required": [
                                                                                                                                                                            "key",
                                                                                                                                                                            "val"
                                                                                                                                                                          ]
                                                                                                                                                                        }
                                                                                                                                                                      }
                                                                                                                                                                    },
                                                                                                                                                                    "required": [
                                                                                                                                                                      "name",
                                                                                                                                                                      "message"
                                                                                                                                                                    ]
                                                                                                                                                                  }
                                                                                                                                                                }
                                                                                                                                                              },
                                                                                                                                                              "required": [
                                                                                                                                                                "enabled"
                                                                                                                                                              ],
                                                                                                                                                              "allOf": [
                                                                                                                                                                {
                                                                                                                                                                  "if": {
                                                                                                                                                                    "type": "object",
                                                                                                                                                                    "required": [
                                                                                                                                                                      "enabled"
                                                                                                                                                                    ],
                                                                                                                                                                    "properties": {
                                                                                                                                                                      "enabled": {
                                                                                                                                                                        "const": false
                                                                                                                                                                      }
                                                                                                                                                                    }
                                                                                                                                                                  },
                                                                                                                                                                  "then": {
                                                                                                                                                                    "required": []
                                                                                                                                                                  },
                                                                                                                                                                  "else": {
                                                                                                                                                                    "required": [
                                                                                                                                                                      "events"
                                                                                                                                                                    ]
                                                                                                                                                                  }
                                                                                                                                                                }
                                                                                                                                                              ]
                                                                                                                                                            }
                                                                                                                                                          },
                                                                                                                                                          "required": [
                                                                                                                                                            "action"
                                                                                                                                                          ]
                                                                                                                                                        }
                                                                                                                                                      },
                                                                                                                                                      "audit": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "additionalProperties": false,
                                                                                                                                                        "properties": {
                                                                                                                                                          "enabled": {
                                                                                                                                                            "type": "boolean"
                                                                                                                                                          },
                                                                                                                                                          "events": {
                                                                                                                                                            "type": "array",
                                                                                                                                                            "items": {
                                                                                                                                                              "type": "object",
                                                                                                                                                              "additionalProperties": false,
                                                                                                                                                              "properties": {
                                                                                                                                                                "name": {
                                                                                                                                                                  "type": [
                                                                                                                                                                    "number",
                                                                                                                                                                    "string"
                                                                                                                                                                  ]
                                                                                                                                                                },
                                                                                                                                                                "message": {
                                                                                                                                                                  "type": [
                                                                                                                                                                    "number",
                                                                                                                                                                    "string"
                                                                                                                                                                  ]
                                                                                                                                                                },
                                                                                                                                                                "conditions": {
                                                                                                                                                                  "type": "array",
                                                                                                                                                                  "items": {
                                                                                                                                                                    "type": "object",
                                                                                                                                                                    "additionalProperties": false,
                                                                                                                                                                    "properties": {
                                                                                                                                                                      "var": {
                                                                                                                                                                        "description": "Specifies a variable to check.",
                                                                                                                                                                        "type": [
                                                                                                                                                                          "number",
                                                                                                                                                                          "string"
                                                                                                                                                                        ]
                                                                                                                                                                      },
                                                                                                                                                                      "operator": {
                                                                                                                                                                        "description": "Specifies an operator.",
                                                                                                                                                                        "type": [
                                                                                                                                                                          "number",
                                                                                                                                                                          "string"
                                                                                                                                                                        ],
                                                                                                                                                                        "enum": [
                                                                                                                                                                          "=",
                                                                                                                                                                          "!=",
                                                                                                                                                                          "<=",
                                                                                                                                                                          ">=",
                                                                                                                                                                          ">",
                                                                                                                                                                          "<",
                                                                                                                                                                          "in",
                                                                                                                                                                          "not_in",
                                                                                                                                                                          "~",
                                                                                                                                                                          "~*",
                                                                                                                                                                          "!~",
                                                                                                                                                                          "!~*",
                                                                                                                                                                          "ip_range",
                                                                                                                                                                          "!ip_range",
                                                                                                                                                                          "dn_mask",
                                                                                                                                                                          "!dn_mask"
                                                                                                                                                                        ]
                                                                                                                                                                      },
                                                                                                                                                                      "val": {
                                                                                                                                                                        "description": "Specifies a value to check.",
                                                                                                                                                                        "type": [
                                                                                                                                                                          "number",
                                                                                                                                                                          "string"
                                                                                                                                                                        ]
                                                                                                                                                                      }
                                                                                                                                                                    },
                                                                                                                                                                    "required": [
                                                                                                                                                                      "var",
                                                                                                                                                                      "operator",
                                                                                                                                                                      "val"
                                                                                                                                                                    ]
                                                                                                                                                                  }
                                                                                                                                                                },
                                                                                                                                                                "fields": {
                                                                                                                                                                  "type": "array",
                                                                                                                                                                  "items": {
                                                                                                                                                                    "type": "object",
                                                                                                                                                                    "additionalProperties": false,
                                                                                                                                                                    "properties": {
                                                                                                                                                                      "key": {
                                                                                                                                                                        "type": [
                                                                                                                                                                          "number",
                                                                                                                                                                          "string"
                                                                                                                                                                        ]
                                                                                                                                                                      },
                                                                                                                                                                      "val": {
                                                                                                                                                                        "type": [
                                                                                                                                                                          "number",
                                                                                                                                                                          "string"
                                                                                                                                                                        ]
                                                                                                                                                                      }
                                                                                                                                                                    },
                                                                                                                                                                    "required": [
                                                                                                                                                                      "key",
                                                                                                                                                                      "val"
                                                                                                                                                                    ]
                                                                                                                                                                  }
                                                                                                                                                                }
                                                                                                                                                              },
                                                                                                                                                              "required": [
                                                                                                                                                                "name",
                                                                                                                                                                "message"
                                                                                                                                                              ]
                                                                                                                                                            }
                                                                                                                                                          }
                                                                                                                                                        },
                                                                                                                                                        "required": [
                                                                                                                                                          "enabled"
                                                                                                                                                        ],
                                                                                                                                                        "allOf": [
                                                                                                                                                          {
                                                                                                                                                            "if": {
                                                                                                                                                              "type": "object",
                                                                                                                                                              "required": [
                                                                                                                                                                "enabled"
                                                                                                                                                              ],
                                                                                                                                                              "properties": {
                                                                                                                                                                "enabled": {
                                                                                                                                                                  "const": false
                                                                                                                                                                }
                                                                                                                                                              }
                                                                                                                                                            },
                                                                                                                                                            "then": {
                                                                                                                                                              "required": []
                                                                                                                                                            },
                                                                                                                                                            "else": {
                                                                                                                                                              "required": [
                                                                                                                                                                "events"
                                                                                                                                                              ]
                                                                                                                                                            }
                                                                                                                                                          }
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    },
                                                                                                                                                    "required": [
                                                                                                                                                      "action"
                                                                                                                                                    ]
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "audit": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "enabled": {
                                                                                                                                                      "type": "boolean"
                                                                                                                                                    },
                                                                                                                                                    "events": {
                                                                                                                                                      "type": "array",
                                                                                                                                                      "items": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "additionalProperties": false,
                                                                                                                                                        "properties": {
                                                                                                                                                          "name": {
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "message": {
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "conditions": {
                                                                                                                                                            "type": "array",
                                                                                                                                                            "items": {
                                                                                                                                                              "type": "object",
                                                                                                                                                              "additionalProperties": false,
                                                                                                                                                              "properties": {
                                                                                                                                                                "var": {
                                                                                                                                                                  "description": "Specifies a variable to check.",
                                                                                                                                                                  "type": [
                                                                                                                                                                    "number",
                                                                                                                                                                    "string"
                                                                                                                                                                  ]
                                                                                                                                                                },
                                                                                                                                                                "operator": {
                                                                                                                                                                  "description": "Specifies an operator.",
                                                                                                                                                                  "type": [
                                                                                                                                                                    "number",
                                                                                                                                                                    "string"
                                                                                                                                                                  ],
                                                                                                                                                                  "enum": [
                                                                                                                                                                    "=",
                                                                                                                                                                    "!=",
                                                                                                                                                                    "<=",
                                                                                                                                                                    ">=",
                                                                                                                                                                    ">",
                                                                                                                                                                    "<",
                                                                                                                                                                    "in",
                                                                                                                                                                    "not_in",
                                                                                                                                                                    "~",
                                                                                                                                                                    "~*",
                                                                                                                                                                    "!~",
                                                                                                                                                                    "!~*",
                                                                                                                                                                    "ip_range",
                                                                                                                                                                    "!ip_range",
                                                                                                                                                                    "dn_mask",
                                                                                                                                                                    "!dn_mask"
                                                                                                                                                                  ]
                                                                                                                                                                },
                                                                                                                                                                "val": {
                                                                                                                                                                  "description": "Specifies a value to check.",
                                                                                                                                                                  "type": [
                                                                                                                                                                    "number",
                                                                                                                                                                    "string"
                                                                                                                                                                  ]
                                                                                                                                                                }
                                                                                                                                                              },
                                                                                                                                                              "required": [
                                                                                                                                                                "var",
                                                                                                                                                                "operator",
                                                                                                                                                                "val"
                                                                                                                                                              ]
                                                                                                                                                            }
                                                                                                                                                          },
                                                                                                                                                          "fields": {
                                                                                                                                                            "type": "array",
                                                                                                                                                            "items": {
                                                                                                                                                              "type": "object",
                                                                                                                                                              "additionalProperties": false,
                                                                                                                                                              "properties": {
                                                                                                                                                                "key": {
                                                                                                                                                                  "type": [
                                                                                                                                                                    "number",
                                                                                                                                                                    "string"
                                                                                                                                                                  ]
                                                                                                                                                                },
                                                                                                                                                                "val": {
                                                                                                                                                                  "type": [
                                                                                                                                                                    "number",
                                                                                                                                                                    "string"
                                                                                                                                                                  ]
                                                                                                                                                                }
                                                                                                                                                              },
                                                                                                                                                              "required": [
                                                                                                                                                                "key",
                                                                                                                                                                "val"
                                                                                                                                                              ]
                                                                                                                                                            }
                                                                                                                                                          }
                                                                                                                                                        },
                                                                                                                                                        "required": [
                                                                                                                                                          "name",
                                                                                                                                                          "message"
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    }
                                                                                                                                                  },
                                                                                                                                                  "required": [
                                                                                                                                                    "enabled"
                                                                                                                                                  ],
                                                                                                                                                  "allOf": [
                                                                                                                                                    {
                                                                                                                                                      "if": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "required": [
                                                                                                                                                          "enabled"
                                                                                                                                                        ],
                                                                                                                                                        "properties": {
                                                                                                                                                          "enabled": {
                                                                                                                                                            "const": false
                                                                                                                                                          }
                                                                                                                                                        }
                                                                                                                                                      },
                                                                                                                                                      "then": {
                                                                                                                                                        "required": []
                                                                                                                                                      },
                                                                                                                                                      "else": {
                                                                                                                                                        "required": [
                                                                                                                                                          "events"
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    }
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "required": [
                                                                                                                                                "action"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "audit": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "enabled": {
                                                                                                                                                "type": "boolean"
                                                                                                                                              },
                                                                                                                                              "events": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "name": {
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "message": {
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "conditions": {
                                                                                                                                                      "type": "array",
                                                                                                                                                      "items": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "additionalProperties": false,
                                                                                                                                                        "properties": {
                                                                                                                                                          "var": {
                                                                                                                                                            "description": "Specifies a variable to check.",
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "operator": {
                                                                                                                                                            "description": "Specifies an operator.",
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ],
                                                                                                                                                            "enum": [
                                                                                                                                                              "=",
                                                                                                                                                              "!=",
                                                                                                                                                              "<=",
                                                                                                                                                              ">=",
                                                                                                                                                              ">",
                                                                                                                                                              "<",
                                                                                                                                                              "in",
                                                                                                                                                              "not_in",
                                                                                                                                                              "~",
                                                                                                                                                              "~*",
                                                                                                                                                              "!~",
                                                                                                                                                              "!~*",
                                                                                                                                                              "ip_range",
                                                                                                                                                              "!ip_range",
                                                                                                                                                              "dn_mask",
                                                                                                                                                              "!dn_mask"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "val": {
                                                                                                                                                            "description": "Specifies a value to check.",
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          }
                                                                                                                                                        },
                                                                                                                                                        "required": [
                                                                                                                                                          "var",
                                                                                                                                                          "operator",
                                                                                                                                                          "val"
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    },
                                                                                                                                                    "fields": {
                                                                                                                                                      "type": "array",
                                                                                                                                                      "items": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "additionalProperties": false,
                                                                                                                                                        "properties": {
                                                                                                                                                          "key": {
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "val": {
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          }
                                                                                                                                                        },
                                                                                                                                                        "required": [
                                                                                                                                                          "key",
                                                                                                                                                          "val"
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    }
                                                                                                                                                  },
                                                                                                                                                  "required": [
                                                                                                                                                    "name",
                                                                                                                                                    "message"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "enabled"
                                                                                                                                            ],
                                                                                                                                            "allOf": [
                                                                                                                                              {
                                                                                                                                                "if": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "required": [
                                                                                                                                                    "enabled"
                                                                                                                                                  ],
                                                                                                                                                  "properties": {
                                                                                                                                                    "enabled": {
                                                                                                                                                      "const": false
                                                                                                                                                    }
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "then": {
                                                                                                                                                  "required": []
                                                                                                                                                },
                                                                                                                                                "else": {
                                                                                                                                                  "required": [
                                                                                                                                                    "events"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "required": [
                                                                                                                                          "action"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "audit": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "enabled": {
                                                                                                                                          "type": "boolean"
                                                                                                                                        },
                                                                                                                                        "events": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "name": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "message": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "conditions": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "var": {
                                                                                                                                                      "description": "Specifies a variable to check.",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "operator": {
                                                                                                                                                      "description": "Specifies an operator.",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ],
                                                                                                                                                      "enum": [
                                                                                                                                                        "=",
                                                                                                                                                        "!=",
                                                                                                                                                        "<=",
                                                                                                                                                        ">=",
                                                                                                                                                        ">",
                                                                                                                                                        "<",
                                                                                                                                                        "in",
                                                                                                                                                        "not_in",
                                                                                                                                                        "~",
                                                                                                                                                        "~*",
                                                                                                                                                        "!~",
                                                                                                                                                        "!~*",
                                                                                                                                                        "ip_range",
                                                                                                                                                        "!ip_range",
                                                                                                                                                        "dn_mask",
                                                                                                                                                        "!dn_mask"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "val": {
                                                                                                                                                      "description": "Specifies a value to check.",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    }
                                                                                                                                                  },
                                                                                                                                                  "required": [
                                                                                                                                                    "var",
                                                                                                                                                    "operator",
                                                                                                                                                    "val"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "fields": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "key": {
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "val": {
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    }
                                                                                                                                                  },
                                                                                                                                                  "required": [
                                                                                                                                                    "key",
                                                                                                                                                    "val"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "name",
                                                                                                                                              "message"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "enabled"
                                                                                                                                      ],
                                                                                                                                      "allOf": [
                                                                                                                                        {
                                                                                                                                          "if": {
                                                                                                                                            "type": "object",
                                                                                                                                            "required": [
                                                                                                                                              "enabled"
                                                                                                                                            ],
                                                                                                                                            "properties": {
                                                                                                                                              "enabled": {
                                                                                                                                                "const": false
                                                                                                                                              }
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "then": {
                                                                                                                                            "required": []
                                                                                                                                          },
                                                                                                                                          "else": {
                                                                                                                                            "required": [
                                                                                                                                              "events"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "required": [
                                                                                                                                    "action"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "audit": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "enabled": {
                                                                                                                                    "type": "boolean"
                                                                                                                                  },
                                                                                                                                  "events": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "name": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "message": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "conditions": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "var": {
                                                                                                                                                "description": "Specifies a variable to check.",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "operator": {
                                                                                                                                                "description": "Specifies an operator.",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ],
                                                                                                                                                "enum": [
                                                                                                                                                  "=",
                                                                                                                                                  "!=",
                                                                                                                                                  "<=",
                                                                                                                                                  ">=",
                                                                                                                                                  ">",
                                                                                                                                                  "<",
                                                                                                                                                  "in",
                                                                                                                                                  "not_in",
                                                                                                                                                  "~",
                                                                                                                                                  "~*",
                                                                                                                                                  "!~",
                                                                                                                                                  "!~*",
                                                                                                                                                  "ip_range",
                                                                                                                                                  "!ip_range",
                                                                                                                                                  "dn_mask",
                                                                                                                                                  "!dn_mask"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "val": {
                                                                                                                                                "description": "Specifies a value to check.",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "var",
                                                                                                                                              "operator",
                                                                                                                                              "val"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "fields": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "key": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "val": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "key",
                                                                                                                                              "val"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "name",
                                                                                                                                        "message"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "enabled"
                                                                                                                                ],
                                                                                                                                "allOf": [
                                                                                                                                  {
                                                                                                                                    "if": {
                                                                                                                                      "type": "object",
                                                                                                                                      "required": [
                                                                                                                                        "enabled"
                                                                                                                                      ],
                                                                                                                                      "properties": {
                                                                                                                                        "enabled": {
                                                                                                                                          "const": false
                                                                                                                                        }
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "then": {
                                                                                                                                      "required": []
                                                                                                                                    },
                                                                                                                                    "else": {
                                                                                                                                      "required": [
                                                                                                                                        "events"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "required": [
                                                                                                                              "action"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "audit": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "enabled": {
                                                                                                                              "type": "boolean"
                                                                                                                            },
                                                                                                                            "events": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "name": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "message": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "conditions": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "var": {
                                                                                                                                          "description": "Specifies a variable to check.",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "operator": {
                                                                                                                                          "description": "Specifies an operator.",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ],
                                                                                                                                          "enum": [
                                                                                                                                            "=",
                                                                                                                                            "!=",
                                                                                                                                            "<=",
                                                                                                                                            ">=",
                                                                                                                                            ">",
                                                                                                                                            "<",
                                                                                                                                            "in",
                                                                                                                                            "not_in",
                                                                                                                                            "~",
                                                                                                                                            "~*",
                                                                                                                                            "!~",
                                                                                                                                            "!~*",
                                                                                                                                            "ip_range",
                                                                                                                                            "!ip_range",
                                                                                                                                            "dn_mask",
                                                                                                                                            "!dn_mask"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "val": {
                                                                                                                                          "description": "Specifies a value to check.",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "var",
                                                                                                                                        "operator",
                                                                                                                                        "val"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "fields": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "key": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "val": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "key",
                                                                                                                                        "val"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "name",
                                                                                                                                  "message"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "enabled"
                                                                                                                          ],
                                                                                                                          "allOf": [
                                                                                                                            {
                                                                                                                              "if": {
                                                                                                                                "type": "object",
                                                                                                                                "required": [
                                                                                                                                  "enabled"
                                                                                                                                ],
                                                                                                                                "properties": {
                                                                                                                                  "enabled": {
                                                                                                                                    "const": false
                                                                                                                                  }
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "then": {
                                                                                                                                "required": []
                                                                                                                              },
                                                                                                                              "else": {
                                                                                                                                "required": [
                                                                                                                                  "events"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            }
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "required": [
                                                                                                                        "action"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "audit": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "enabled": {
                                                                                                                        "type": "boolean"
                                                                                                                      },
                                                                                                                      "events": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "name": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "message": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "conditions": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "var": {
                                                                                                                                    "description": "Specifies a variable to check.",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "operator": {
                                                                                                                                    "description": "Specifies an operator.",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ],
                                                                                                                                    "enum": [
                                                                                                                                      "=",
                                                                                                                                      "!=",
                                                                                                                                      "<=",
                                                                                                                                      ">=",
                                                                                                                                      ">",
                                                                                                                                      "<",
                                                                                                                                      "in",
                                                                                                                                      "not_in",
                                                                                                                                      "~",
                                                                                                                                      "~*",
                                                                                                                                      "!~",
                                                                                                                                      "!~*",
                                                                                                                                      "ip_range",
                                                                                                                                      "!ip_range",
                                                                                                                                      "dn_mask",
                                                                                                                                      "!dn_mask"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "val": {
                                                                                                                                    "description": "Specifies a value to check.",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "var",
                                                                                                                                  "operator",
                                                                                                                                  "val"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "fields": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "key": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "val": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "key",
                                                                                                                                  "val"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "name",
                                                                                                                            "message"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "enabled"
                                                                                                                    ],
                                                                                                                    "allOf": [
                                                                                                                      {
                                                                                                                        "if": {
                                                                                                                          "type": "object",
                                                                                                                          "required": [
                                                                                                                            "enabled"
                                                                                                                          ],
                                                                                                                          "properties": {
                                                                                                                            "enabled": {
                                                                                                                              "const": false
                                                                                                                            }
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "then": {
                                                                                                                          "required": []
                                                                                                                        },
                                                                                                                        "else": {
                                                                                                                          "required": [
                                                                                                                            "events"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      }
                                                                                                                    ]
                                                                                                                  }
                                                                                                                },
                                                                                                                "required": [
                                                                                                                  "action"
                                                                                                                ]
                                                                                                              }
                                                                                                            },
                                                                                                            "audit": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "enabled": {
                                                                                                                  "type": "boolean"
                                                                                                                },
                                                                                                                "events": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "name": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "message": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "conditions": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "var": {
                                                                                                                              "description": "Specifies a variable to check.",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "operator": {
                                                                                                                              "description": "Specifies an operator.",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ],
                                                                                                                              "enum": [
                                                                                                                                "=",
                                                                                                                                "!=",
                                                                                                                                "<=",
                                                                                                                                ">=",
                                                                                                                                ">",
                                                                                                                                "<",
                                                                                                                                "in",
                                                                                                                                "not_in",
                                                                                                                                "~",
                                                                                                                                "~*",
                                                                                                                                "!~",
                                                                                                                                "!~*",
                                                                                                                                "ip_range",
                                                                                                                                "!ip_range",
                                                                                                                                "dn_mask",
                                                                                                                                "!dn_mask"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "val": {
                                                                                                                              "description": "Specifies a value to check.",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "var",
                                                                                                                            "operator",
                                                                                                                            "val"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "fields": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "key": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "val": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "key",
                                                                                                                            "val"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "name",
                                                                                                                      "message"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "enabled"
                                                                                                              ],
                                                                                                              "allOf": [
                                                                                                                {
                                                                                                                  "if": {
                                                                                                                    "type": "object",
                                                                                                                    "required": [
                                                                                                                      "enabled"
                                                                                                                    ],
                                                                                                                    "properties": {
                                                                                                                      "enabled": {
                                                                                                                        "const": false
                                                                                                                      }
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "then": {
                                                                                                                    "required": []
                                                                                                                  },
                                                                                                                  "else": {
                                                                                                                    "required": [
                                                                                                                      "events"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                }
                                                                                                              ]
                                                                                                            }
                                                                                                          },
                                                                                                          "required": [
                                                                                                            "action"
                                                                                                          ]
                                                                                                        }
                                                                                                      },
                                                                                                      "audit": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "enabled": {
                                                                                                            "type": "boolean"
                                                                                                          },
                                                                                                          "events": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "name": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "message": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "conditions": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "var": {
                                                                                                                        "description": "Specifies a variable to check.",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "operator": {
                                                                                                                        "description": "Specifies an operator.",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ],
                                                                                                                        "enum": [
                                                                                                                          "=",
                                                                                                                          "!=",
                                                                                                                          "<=",
                                                                                                                          ">=",
                                                                                                                          ">",
                                                                                                                          "<",
                                                                                                                          "in",
                                                                                                                          "not_in",
                                                                                                                          "~",
                                                                                                                          "~*",
                                                                                                                          "!~",
                                                                                                                          "!~*",
                                                                                                                          "ip_range",
                                                                                                                          "!ip_range",
                                                                                                                          "dn_mask",
                                                                                                                          "!dn_mask"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "val": {
                                                                                                                        "description": "Specifies a value to check.",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "var",
                                                                                                                      "operator",
                                                                                                                      "val"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                },
                                                                                                                "fields": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "key": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "val": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "key",
                                                                                                                      "val"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "name",
                                                                                                                "message"
                                                                                                              ]
                                                                                                            }
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "enabled"
                                                                                                        ],
                                                                                                        "allOf": [
                                                                                                          {
                                                                                                            "if": {
                                                                                                              "type": "object",
                                                                                                              "required": [
                                                                                                                "enabled"
                                                                                                              ],
                                                                                                              "properties": {
                                                                                                                "enabled": {
                                                                                                                  "const": false
                                                                                                                }
                                                                                                              }
                                                                                                            },
                                                                                                            "then": {
                                                                                                              "required": []
                                                                                                            },
                                                                                                            "else": {
                                                                                                              "required": [
                                                                                                                "events"
                                                                                                              ]
                                                                                                            }
                                                                                                          }
                                                                                                        ]
                                                                                                      }
                                                                                                    },
                                                                                                    "required": [
                                                                                                      "action"
                                                                                                    ]
                                                                                                  }
                                                                                                },
                                                                                                "audit": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "enabled": {
                                                                                                      "type": "boolean"
                                                                                                    },
                                                                                                    "events": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "name": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "message": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "conditions": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "var": {
                                                                                                                  "description": "Specifies a variable to check.",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "operator": {
                                                                                                                  "description": "Specifies an operator.",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ],
                                                                                                                  "enum": [
                                                                                                                    "=",
                                                                                                                    "!=",
                                                                                                                    "<=",
                                                                                                                    ">=",
                                                                                                                    ">",
                                                                                                                    "<",
                                                                                                                    "in",
                                                                                                                    "not_in",
                                                                                                                    "~",
                                                                                                                    "~*",
                                                                                                                    "!~",
                                                                                                                    "!~*",
                                                                                                                    "ip_range",
                                                                                                                    "!ip_range",
                                                                                                                    "dn_mask",
                                                                                                                    "!dn_mask"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "val": {
                                                                                                                  "description": "Specifies a value to check.",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "var",
                                                                                                                "operator",
                                                                                                                "val"
                                                                                                              ]
                                                                                                            }
                                                                                                          },
                                                                                                          "fields": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "key": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "val": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "key",
                                                                                                                "val"
                                                                                                              ]
                                                                                                            }
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "name",
                                                                                                          "message"
                                                                                                        ]
                                                                                                      }
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "enabled"
                                                                                                  ],
                                                                                                  "allOf": [
                                                                                                    {
                                                                                                      "if": {
                                                                                                        "type": "object",
                                                                                                        "required": [
                                                                                                          "enabled"
                                                                                                        ],
                                                                                                        "properties": {
                                                                                                          "enabled": {
                                                                                                            "const": false
                                                                                                          }
                                                                                                        }
                                                                                                      },
                                                                                                      "then": {
                                                                                                        "required": []
                                                                                                      },
                                                                                                      "else": {
                                                                                                        "required": [
                                                                                                          "events"
                                                                                                        ]
                                                                                                      }
                                                                                                    }
                                                                                                  ]
                                                                                                }
                                                                                              },
                                                                                              "required": [
                                                                                                "action"
                                                                                              ]
                                                                                            }
                                                                                          },
                                                                                          "audit": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "enabled": {
                                                                                                "type": "boolean"
                                                                                              },
                                                                                              "events": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "name": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "message": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "conditions": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "var": {
                                                                                                            "description": "Specifies a variable to check.",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "operator": {
                                                                                                            "description": "Specifies an operator.",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ],
                                                                                                            "enum": [
                                                                                                              "=",
                                                                                                              "!=",
                                                                                                              "<=",
                                                                                                              ">=",
                                                                                                              ">",
                                                                                                              "<",
                                                                                                              "in",
                                                                                                              "not_in",
                                                                                                              "~",
                                                                                                              "~*",
                                                                                                              "!~",
                                                                                                              "!~*",
                                                                                                              "ip_range",
                                                                                                              "!ip_range",
                                                                                                              "dn_mask",
                                                                                                              "!dn_mask"
                                                                                                            ]
                                                                                                          },
                                                                                                          "val": {
                                                                                                            "description": "Specifies a value to check.",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "var",
                                                                                                          "operator",
                                                                                                          "val"
                                                                                                        ]
                                                                                                      }
                                                                                                    },
                                                                                                    "fields": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "key": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "val": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "key",
                                                                                                          "val"
                                                                                                        ]
                                                                                                      }
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "name",
                                                                                                    "message"
                                                                                                  ]
                                                                                                }
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "enabled"
                                                                                            ],
                                                                                            "allOf": [
                                                                                              {
                                                                                                "if": {
                                                                                                  "type": "object",
                                                                                                  "required": [
                                                                                                    "enabled"
                                                                                                  ],
                                                                                                  "properties": {
                                                                                                    "enabled": {
                                                                                                      "const": false
                                                                                                    }
                                                                                                  }
                                                                                                },
                                                                                                "then": {
                                                                                                  "required": []
                                                                                                },
                                                                                                "else": {
                                                                                                  "required": [
                                                                                                    "events"
                                                                                                  ]
                                                                                                }
                                                                                              }
                                                                                            ]
                                                                                          }
                                                                                        },
                                                                                        "required": [
                                                                                          "action"
                                                                                        ]
                                                                                      }
                                                                                    },
                                                                                    "audit": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "enabled": {
                                                                                          "type": "boolean"
                                                                                        },
                                                                                        "events": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "name": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "message": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "conditions": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "var": {
                                                                                                      "description": "Specifies a variable to check.",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "operator": {
                                                                                                      "description": "Specifies an operator.",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ],
                                                                                                      "enum": [
                                                                                                        "=",
                                                                                                        "!=",
                                                                                                        "<=",
                                                                                                        ">=",
                                                                                                        ">",
                                                                                                        "<",
                                                                                                        "in",
                                                                                                        "not_in",
                                                                                                        "~",
                                                                                                        "~*",
                                                                                                        "!~",
                                                                                                        "!~*",
                                                                                                        "ip_range",
                                                                                                        "!ip_range",
                                                                                                        "dn_mask",
                                                                                                        "!dn_mask"
                                                                                                      ]
                                                                                                    },
                                                                                                    "val": {
                                                                                                      "description": "Specifies a value to check.",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "var",
                                                                                                    "operator",
                                                                                                    "val"
                                                                                                  ]
                                                                                                }
                                                                                              },
                                                                                              "fields": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "key": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "val": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "key",
                                                                                                    "val"
                                                                                                  ]
                                                                                                }
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "name",
                                                                                              "message"
                                                                                            ]
                                                                                          }
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "enabled"
                                                                                      ],
                                                                                      "allOf": [
                                                                                        {
                                                                                          "if": {
                                                                                            "type": "object",
                                                                                            "required": [
                                                                                              "enabled"
                                                                                            ],
                                                                                            "properties": {
                                                                                              "enabled": {
                                                                                                "const": false
                                                                                              }
                                                                                            }
                                                                                          },
                                                                                          "then": {
                                                                                            "required": []
                                                                                          },
                                                                                          "else": {
                                                                                            "required": [
                                                                                              "events"
                                                                                            ]
                                                                                          }
                                                                                        }
                                                                                      ]
                                                                                    }
                                                                                  },
                                                                                  "required": [
                                                                                    "action"
                                                                                  ]
                                                                                }
                                                                              },
                                                                              "audit": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "enabled": {
                                                                                    "type": "boolean"
                                                                                  },
                                                                                  "events": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "name": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "message": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "conditions": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "var": {
                                                                                                "description": "Specifies a variable to check.",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "operator": {
                                                                                                "description": "Specifies an operator.",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ],
                                                                                                "enum": [
                                                                                                  "=",
                                                                                                  "!=",
                                                                                                  "<=",
                                                                                                  ">=",
                                                                                                  ">",
                                                                                                  "<",
                                                                                                  "in",
                                                                                                  "not_in",
                                                                                                  "~",
                                                                                                  "~*",
                                                                                                  "!~",
                                                                                                  "!~*",
                                                                                                  "ip_range",
                                                                                                  "!ip_range",
                                                                                                  "dn_mask",
                                                                                                  "!dn_mask"
                                                                                                ]
                                                                                              },
                                                                                              "val": {
                                                                                                "description": "Specifies a value to check.",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "var",
                                                                                              "operator",
                                                                                              "val"
                                                                                            ]
                                                                                          }
                                                                                        },
                                                                                        "fields": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "key": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "val": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "key",
                                                                                              "val"
                                                                                            ]
                                                                                          }
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "name",
                                                                                        "message"
                                                                                      ]
                                                                                    }
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "enabled"
                                                                                ],
                                                                                "allOf": [
                                                                                  {
                                                                                    "if": {
                                                                                      "type": "object",
                                                                                      "required": [
                                                                                        "enabled"
                                                                                      ],
                                                                                      "properties": {
                                                                                        "enabled": {
                                                                                          "const": false
                                                                                        }
                                                                                      }
                                                                                    },
                                                                                    "then": {
                                                                                      "required": []
                                                                                    },
                                                                                    "else": {
                                                                                      "required": [
                                                                                        "events"
                                                                                      ]
                                                                                    }
                                                                                  }
                                                                                ]
                                                                              }
                                                                            },
                                                                            "required": [
                                                                              "action"
                                                                            ]
                                                                          }
                                                                        },
                                                                        "audit": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "enabled": {
                                                                              "type": "boolean"
                                                                            },
                                                                            "events": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "name": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "message": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "conditions": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "var": {
                                                                                          "description": "Specifies a variable to check.",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "operator": {
                                                                                          "description": "Specifies an operator.",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ],
                                                                                          "enum": [
                                                                                            "=",
                                                                                            "!=",
                                                                                            "<=",
                                                                                            ">=",
                                                                                            ">",
                                                                                            "<",
                                                                                            "in",
                                                                                            "not_in",
                                                                                            "~",
                                                                                            "~*",
                                                                                            "!~",
                                                                                            "!~*",
                                                                                            "ip_range",
                                                                                            "!ip_range",
                                                                                            "dn_mask",
                                                                                            "!dn_mask"
                                                                                          ]
                                                                                        },
                                                                                        "val": {
                                                                                          "description": "Specifies a value to check.",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "var",
                                                                                        "operator",
                                                                                        "val"
                                                                                      ]
                                                                                    }
                                                                                  },
                                                                                  "fields": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "key": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "val": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "key",
                                                                                        "val"
                                                                                      ]
                                                                                    }
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "name",
                                                                                  "message"
                                                                                ]
                                                                              }
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "enabled"
                                                                          ],
                                                                          "allOf": [
                                                                            {
                                                                              "if": {
                                                                                "type": "object",
                                                                                "required": [
                                                                                  "enabled"
                                                                                ],
                                                                                "properties": {
                                                                                  "enabled": {
                                                                                    "const": false
                                                                                  }
                                                                                }
                                                                              },
                                                                              "then": {
                                                                                "required": []
                                                                              },
                                                                              "else": {
                                                                                "required": [
                                                                                  "events"
                                                                                ]
                                                                              }
                                                                            }
                                                                          ]
                                                                        }
                                                                      },
                                                                      "required": [
                                                                        "action"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "audit": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "enabled": {
                                                                        "type": "boolean"
                                                                      },
                                                                      "events": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "name": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "message": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "conditions": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "var": {
                                                                                    "description": "Specifies a variable to check.",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "operator": {
                                                                                    "description": "Specifies an operator.",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ],
                                                                                    "enum": [
                                                                                      "=",
                                                                                      "!=",
                                                                                      "<=",
                                                                                      ">=",
                                                                                      ">",
                                                                                      "<",
                                                                                      "in",
                                                                                      "not_in",
                                                                                      "~",
                                                                                      "~*",
                                                                                      "!~",
                                                                                      "!~*",
                                                                                      "ip_range",
                                                                                      "!ip_range",
                                                                                      "dn_mask",
                                                                                      "!dn_mask"
                                                                                    ]
                                                                                  },
                                                                                  "val": {
                                                                                    "description": "Specifies a value to check.",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "var",
                                                                                  "operator",
                                                                                  "val"
                                                                                ]
                                                                              }
                                                                            },
                                                                            "fields": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "key": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "val": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "key",
                                                                                  "val"
                                                                                ]
                                                                              }
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "name",
                                                                            "message"
                                                                          ]
                                                                        }
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "enabled"
                                                                    ],
                                                                    "allOf": [
                                                                      {
                                                                        "if": {
                                                                          "type": "object",
                                                                          "required": [
                                                                            "enabled"
                                                                          ],
                                                                          "properties": {
                                                                            "enabled": {
                                                                              "const": false
                                                                            }
                                                                          }
                                                                        },
                                                                        "then": {
                                                                          "required": []
                                                                        },
                                                                        "else": {
                                                                          "required": [
                                                                            "events"
                                                                          ]
                                                                        }
                                                                      }
                                                                    ]
                                                                  }
                                                                },
                                                                "required": [
                                                                  "action"
                                                                ]
                                                              }
                                                            },
                                                            "audit": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "enabled": {
                                                                  "type": "boolean"
                                                                },
                                                                "events": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "name": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "message": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "conditions": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "var": {
                                                                              "description": "Specifies a variable to check.",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "operator": {
                                                                              "description": "Specifies an operator.",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ],
                                                                              "enum": [
                                                                                "=",
                                                                                "!=",
                                                                                "<=",
                                                                                ">=",
                                                                                ">",
                                                                                "<",
                                                                                "in",
                                                                                "not_in",
                                                                                "~",
                                                                                "~*",
                                                                                "!~",
                                                                                "!~*",
                                                                                "ip_range",
                                                                                "!ip_range",
                                                                                "dn_mask",
                                                                                "!dn_mask"
                                                                              ]
                                                                            },
                                                                            "val": {
                                                                              "description": "Specifies a value to check.",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "var",
                                                                            "operator",
                                                                            "val"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "fields": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "key": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "val": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "key",
                                                                            "val"
                                                                          ]
                                                                        }
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "name",
                                                                      "message"
                                                                    ]
                                                                  }
                                                                }
                                                              },
                                                              "required": [
                                                                "enabled"
                                                              ],
                                                              "allOf": [
                                                                {
                                                                  "if": {
                                                                    "type": "object",
                                                                    "required": [
                                                                      "enabled"
                                                                    ],
                                                                    "properties": {
                                                                      "enabled": {
                                                                        "const": false
                                                                      }
                                                                    }
                                                                  },
                                                                  "then": {
                                                                    "required": []
                                                                  },
                                                                  "else": {
                                                                    "required": [
                                                                      "events"
                                                                    ]
                                                                  }
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": [
                                                            "action"
                                                          ]
                                                        }
                                                      },
                                                      "audit": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "enabled": {
                                                            "type": "boolean"
                                                          },
                                                          "events": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "name": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "message": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "conditions": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "var": {
                                                                        "description": "Specifies a variable to check.",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "operator": {
                                                                        "description": "Specifies an operator.",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ],
                                                                        "enum": [
                                                                          "=",
                                                                          "!=",
                                                                          "<=",
                                                                          ">=",
                                                                          ">",
                                                                          "<",
                                                                          "in",
                                                                          "not_in",
                                                                          "~",
                                                                          "~*",
                                                                          "!~",
                                                                          "!~*",
                                                                          "ip_range",
                                                                          "!ip_range",
                                                                          "dn_mask",
                                                                          "!dn_mask"
                                                                        ]
                                                                      },
                                                                      "val": {
                                                                        "description": "Specifies a value to check.",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "var",
                                                                      "operator",
                                                                      "val"
                                                                    ]
                                                                  }
                                                                },
                                                                "fields": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "key": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "val": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "key",
                                                                      "val"
                                                                    ]
                                                                  }
                                                                }
                                                              },
                                                              "required": [
                                                                "name",
                                                                "message"
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "enabled"
                                                        ],
                                                        "allOf": [
                                                          {
                                                            "if": {
                                                              "type": "object",
                                                              "required": [
                                                                "enabled"
                                                              ],
                                                              "properties": {
                                                                "enabled": {
                                                                  "const": false
                                                                }
                                                              }
                                                            },
                                                            "then": {
                                                              "required": []
                                                            },
                                                            "else": {
                                                              "required": [
                                                                "events"
                                                              ]
                                                            }
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "action"
                                                    ]
                                                  }
                                                },
                                                "audit": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "enabled": {
                                                      "type": "boolean"
                                                    },
                                                    "events": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "name": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "message": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "conditions": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "var": {
                                                                  "description": "Specifies a variable to check.",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "operator": {
                                                                  "description": "Specifies an operator.",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ],
                                                                  "enum": [
                                                                    "=",
                                                                    "!=",
                                                                    "<=",
                                                                    ">=",
                                                                    ">",
                                                                    "<",
                                                                    "in",
                                                                    "not_in",
                                                                    "~",
                                                                    "~*",
                                                                    "!~",
                                                                    "!~*",
                                                                    "ip_range",
                                                                    "!ip_range",
                                                                    "dn_mask",
                                                                    "!dn_mask"
                                                                  ]
                                                                },
                                                                "val": {
                                                                  "description": "Specifies a value to check.",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                }
                                                              },
                                                              "required": [
                                                                "var",
                                                                "operator",
                                                                "val"
                                                              ]
                                                            }
                                                          },
                                                          "fields": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "key": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "val": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                }
                                                              },
                                                              "required": [
                                                                "key",
                                                                "val"
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "name",
                                                          "message"
                                                        ]
                                                      }
                                                    }
                                                  },
                                                  "required": [
                                                    "enabled"
                                                  ],
                                                  "allOf": [
                                                    {
                                                      "if": {
                                                        "type": "object",
                                                        "required": [
                                                          "enabled"
                                                        ],
                                                        "properties": {
                                                          "enabled": {
                                                            "const": false
                                                          }
                                                        }
                                                      },
                                                      "then": {
                                                        "required": []
                                                      },
                                                      "else": {
                                                        "required": [
                                                          "events"
                                                        ]
                                                      }
                                                    }
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "action"
                                              ]
                                            }
                                          },
                                          "audit": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "enabled": {
                                                "type": "boolean"
                                              },
                                              "events": {
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "name": {
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "message": {
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "conditions": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "var": {
                                                            "description": "Specifies a variable to check.",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "operator": {
                                                            "description": "Specifies an operator.",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ],
                                                            "enum": [
                                                              "=",
                                                              "!=",
                                                              "<=",
                                                              ">=",
                                                              ">",
                                                              "<",
                                                              "in",
                                                              "not_in",
                                                              "~",
                                                              "~*",
                                                              "!~",
                                                              "!~*",
                                                              "ip_range",
                                                              "!ip_range",
                                                              "dn_mask",
                                                              "!dn_mask"
                                                            ]
                                                          },
                                                          "val": {
                                                            "description": "Specifies a value to check.",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "var",
                                                          "operator",
                                                          "val"
                                                        ]
                                                      }
                                                    },
                                                    "fields": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "key": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "val": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "key",
                                                          "val"
                                                        ]
                                                      }
                                                    }
                                                  },
                                                  "required": [
                                                    "name",
                                                    "message"
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "enabled"
                                            ],
                                            "allOf": [
                                              {
                                                "if": {
                                                  "type": "object",
                                                  "required": [
                                                    "enabled"
                                                  ],
                                                  "properties": {
                                                    "enabled": {
                                                      "const": false
                                                    }
                                                  }
                                                },
                                                "then": {
                                                  "required": []
                                                },
                                                "else": {
                                                  "required": [
                                                    "events"
                                                  ]
                                                }
                                              }
                                            ]
                                          }
                                        }
                                      }
                                    },
                                    "request_chain_properties": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "error_state_code": {
                                          "type": "integer"
                                        },
                                        "failed_check_state_code": {
                                          "type": "integer"
                                        },
                                        "max_buffer_size": {
                                          "type": [
                                            "number",
                                            "string"
                                          ],
                                          "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                        },
                                        "max_inmemory_size": {
                                          "type": [
                                            "number",
                                            "string"
                                          ],
                                          "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                        },
                                        "output_buffer_size": {
                                          "type": [
                                            "number",
                                            "string"
                                          ],
                                          "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                        },
                                        "input_buffer_size": {
                                          "type": [
                                            "number",
                                            "string"
                                          ],
                                          "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                        },
                                        "temp_file_path": {
                                          "description": "Directory to save temp files. Default is /tmp",
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "resp_gen_rules_file": {
                                          "description": "Specifies the YAML rule file which describes how to fill pattern file.",
                                          "type": [
                                            "number",
                                            "string"
                                          ],
                                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                        },
                                        "resp_gen_content_type": {
                                          "description": "Specifies content type for response header. Default - none.",
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "resp_gen_pattern_file": {
                                          "description": "Specifies pattern file.",
                                          "type": [
                                            "number",
                                            "string"
                                          ],
                                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                        },
                                        "trace_config": {
                                          "type": "object",
                                          "additionalProperties": false,
                                          "properties": {
                                            "enableAllActions": {
                                              "description": "enable tracing of all actions in chains",
                                              "type": "boolean"
                                            },
                                            "enableAllChains": {
                                              "description": "enable tracing of all actions in child chains",
                                              "type": "boolean"
                                            },
                                            "mode": {
                                              "description": "Enable or disable tracing at this level.",
                                              "type": "object",
                                              "additionalProperties": false,
                                              "properties": {
                                                "enabled": {
                                                  "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ],
                                                  "enum": [
                                                    "on",
                                                    "off",
                                                    "var_based"
                                                  ]
                                                },
                                                "var": {
                                                  "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                }
                                              }
                                            },
                                            "spanAttributes": {
                                              "type": "array",
                                              "items": {
                                                "type": "object",
                                                "additionalProperties": false,
                                                "properties": {
                                                  "name": {
                                                    "description": "name of attribute",
                                                    "type": [
                                                      "number",
                                                      "string"
                                                    ]
                                                  },
                                                  "value": {
                                                    "description": "value of attribute, can contain variables",
                                                    "type": [
                                                      "number",
                                                      "string"
                                                    ]
                                                  }
                                                }
                                              }
                                            },
                                            "spanName": {
                                              "description": "Specify name of span",
                                              "type": [
                                                "number",
                                                "string"
                                              ]
                                            },
                                            "enableSocketsTracing": {
                                              "description": "Enable or disable socket tracing, by default enabled",
                                              "type": "boolean"
                                            }
                                          }
                                        },
                                        "requiredActionOneOf": {
                                          "type": "object",
                                          "additionalProperties": false,
                                          "properties": {
                                            "accessPhase": {},
                                            "rewritePhase": {}
                                          }
                                        }
                                      }
                                    },
                                    "response_chains": {
                                      "description": "Specifies chain of actions for the response.",
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "additionalProperties": false,
                                        "properties": {
                                          "message": {
                                            "description": "Text for analysis. May contain variables. E.g. $shared_request_body",
                                            "type": [
                                              "number",
                                              "string"
                                            ]
                                          },
                                          "streaming": {
                                            "description": "When set to true and server_streaming enabled, chain used on parsed stream messages, otherwise ignored. When set to false(by default), chain applied for non-streamable responses, response status line and response headers of streaming responses",
                                            "type": "boolean"
                                          },
                                          "requiredChildOneOf": {
                                            "description": "Specifies unverifed action check",
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "decision": {
                                                "type": [
                                                  "number",
                                                  "string"
                                                ],
                                                "enum": [
                                                  "BLOCK",
                                                  "WARN"
                                                ]
                                              },
                                              "onlyCheckers": {
                                                "type": "boolean"
                                              },
                                              "include": {
                                                "type": "array",
                                                "items": {
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                }
                                              },
                                              "exclude": {
                                                "type": "array",
                                                "items": {
                                                  "type": "string"
                                                }
                                              }
                                            },
                                            "required": [
                                              "decision"
                                            ],
                                            "allOf": [
                                              {
                                                "if": {
                                                  "type": "object",
                                                  "required": [
                                                    "exclude"
                                                  ],
                                                  "properties": {
                                                    "exclude": {}
                                                  }
                                                },
                                                "then": {
                                                  "not": {
                                                    "required": [
                                                      "include"
                                                    ]
                                                  }
                                                }
                                              },
                                              {
                                                "if": {
                                                  "type": "object",
                                                  "required": [
                                                    "include"
                                                  ],
                                                  "properties": {
                                                    "include": {}
                                                  }
                                                },
                                                "then": {
                                                  "not": {
                                                    "required": [
                                                      "exclude"
                                                    ]
                                                  }
                                                }
                                              }
                                            ]
                                          },
                                          "actions": {
                                            "description": "Specifies a list of actions.",
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "additionalProperties": false,
                                              "properties": {
                                                "action": {
                                                  "description": "Specifies an action to perform",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ],
                                                  "enum": [
                                                    "ASN1ContentExtractor",
                                                    "Base64Decode",
                                                    "ConditionChecker",
                                                    "CheckDataSize",
                                                    "CheckMimeType",
                                                    "JsonPathExtract",
                                                    "JsonPathExtractToVars",
                                                    "JsonValidation",
                                                    "XsdValidation",
                                                    "PostFormDataToFlateJson",
                                                    "MultipartExtract",
                                                    "SetMessageFromVar",
                                                    "SetVarFromMessage",
                                                    "JwsToJson",
                                                    "XPathExtract",
                                                    "XPathExtractToVars",
                                                    "SharedMapDeleter",
                                                    "SharedMapRemover",
                                                    "SharedMapSetter",
                                                    "SharedMapGetter",
                                                    "RandomNumberToVar",
                                                    "VarsToSharedMap",
                                                    "SharedMapToVars",
                                                    "AntivirusFileChecker",
                                                    "MtomExtractor",
                                                    "JsonTransformer",
                                                    "SetVar",
                                                    "GraphQLRequestValidation",
                                                    "ProtobufValidation",
                                                    "OpenApiValidation",
                                                    "DelimiterSplitter",
                                                    "VarsToFile",
                                                    "FileToVars",
                                                    "WsdlValidation",
                                                    "HttpFilter",
                                                    "ProtobufToJson",
                                                    "FilterMds",
                                                    "OcspSignValidator",
                                                    "OcspToJson",
                                                    "ASN1ToJson",
                                                    "XmlTransformer",
                                                    "UrlEncode",
                                                    "UrlDecodeUni",
                                                    "UrlDecode",
                                                    "HexDecode",
                                                    "HexEncode",
                                                    "ToLowerCase",
                                                    "ToUpperCase",
                                                    "Utf8ToUnicode",
                                                    "Trim",
                                                    "ICAPFileChecker",
                                                    "MessageToFile",
                                                    "MultipartFormGenerateFromVar",
                                                    "HttpSender",
                                                    "MessageAccumulator",
                                                    "MessageFromAccumulator",
                                                    "MessageFromPattern",
                                                    "MultipartFormGenerateFromMessage",
                                                    "JsonPatchMessage",
                                                    "JsonPatchVar",
                                                    "DigestFromMessage",
                                                    "Base64Encode",
                                                    "HMac",
                                                    "FileToMessage",
                                                    "JwtVerifier",
                                                    "CharsetChecker",
                                                    "LdapSearch",
                                                    "UnicodeDecode",
                                                    "MessageMapper",
                                                    "SimpleRateLimiter",
                                                    "EventSourceConverter",
                                                    "LazySessionTimeChecker",
                                                    "CalculateMessageProperties"
                                                  ]
                                                },
                                                "id": {
                                                  "description": "An identificator of action",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                },
                                                "conditions": {
                                                  "description": "Specifies the conditions for performina an action.",
                                                  "type": "array",
                                                  "items": {
                                                    "type": "object",
                                                    "additionalProperties": false,
                                                    "properties": {
                                                      "var": {
                                                        "description": "Specifies a variable to check.",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ]
                                                      },
                                                      "operator": {
                                                        "description": "Specifies an operator.",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ],
                                                        "enum": [
                                                          "=",
                                                          "!=",
                                                          "<=",
                                                          ">=",
                                                          ">",
                                                          "<",
                                                          "in",
                                                          "not_in",
                                                          "~",
                                                          "~*",
                                                          "!~",
                                                          "!~*",
                                                          "ip_range",
                                                          "!ip_range",
                                                          "dn_mask",
                                                          "!dn_mask"
                                                        ]
                                                      },
                                                      "val": {
                                                        "description": "Specifies a value to check.",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "var",
                                                      "operator",
                                                      "val"
                                                    ]
                                                  }
                                                },
                                                "trace_config": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "enableAllActions": {
                                                      "description": "enable tracing of all actions in chains",
                                                      "type": "boolean"
                                                    },
                                                    "enableAllChains": {
                                                      "description": "enable tracing of all actions in child chains",
                                                      "type": "boolean"
                                                    },
                                                    "mode": {
                                                      "description": "Enable or disable tracing at this level.",
                                                      "type": "object",
                                                      "additionalProperties": false,
                                                      "properties": {
                                                        "enabled": {
                                                          "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                          "type": [
                                                            "number",
                                                            "string"
                                                          ],
                                                          "enum": [
                                                            "on",
                                                            "off",
                                                            "var_based"
                                                          ]
                                                        },
                                                        "var": {
                                                          "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                          "type": [
                                                            "number",
                                                            "string"
                                                          ]
                                                        }
                                                      }
                                                    },
                                                    "spanAttributes": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "name": {
                                                            "description": "name of attribute",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "value": {
                                                            "description": "value of attribute, can contain variables",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          }
                                                        }
                                                      }
                                                    },
                                                    "spanName": {
                                                      "description": "Specify name of span",
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "enableSocketsTracing": {
                                                      "description": "Enable or disable socket tracing, by default enabled",
                                                      "type": "boolean"
                                                    }
                                                  }
                                                },
                                                "params": {
                                                  "description": "Specifies extra parameters for the actions.",
                                                  "type": "object",
                                                  "additionalProperties": true
                                                },
                                                "requiredChildOneOf": {
                                                  "description": "Specifies unverifed action check",
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "decision": {
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ],
                                                      "enum": [
                                                        "BLOCK",
                                                        "WARN"
                                                      ]
                                                    },
                                                    "onlyCheckers": {
                                                      "type": "boolean"
                                                    },
                                                    "include": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ]
                                                      }
                                                    },
                                                    "exclude": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "string"
                                                      }
                                                    }
                                                  },
                                                  "required": [
                                                    "decision"
                                                  ],
                                                  "allOf": [
                                                    {
                                                      "if": {
                                                        "type": "object",
                                                        "required": [
                                                          "exclude"
                                                        ],
                                                        "properties": {
                                                          "exclude": {}
                                                        }
                                                      },
                                                      "then": {
                                                        "not": {
                                                          "required": [
                                                            "include"
                                                          ]
                                                        }
                                                      }
                                                    },
                                                    {
                                                      "if": {
                                                        "type": "object",
                                                        "required": [
                                                          "include"
                                                        ],
                                                        "properties": {
                                                          "include": {}
                                                        }
                                                      },
                                                      "then": {
                                                        "not": {
                                                          "required": [
                                                            "exclude"
                                                          ]
                                                        }
                                                      }
                                                    }
                                                  ]
                                                },
                                                "actions": {
                                                  "description": "Specifies a list of actions.",
                                                  "type": "array",
                                                  "items": {
                                                    "type": "object",
                                                    "additionalProperties": false,
                                                    "properties": {
                                                      "action": {
                                                        "description": "Specifies an action to perform",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ],
                                                        "enum": [
                                                          "ASN1ContentExtractor",
                                                          "Base64Decode",
                                                          "ConditionChecker",
                                                          "CheckDataSize",
                                                          "CheckMimeType",
                                                          "JsonPathExtract",
                                                          "JsonPathExtractToVars",
                                                          "JsonValidation",
                                                          "XsdValidation",
                                                          "PostFormDataToFlateJson",
                                                          "MultipartExtract",
                                                          "SetMessageFromVar",
                                                          "SetVarFromMessage",
                                                          "JwsToJson",
                                                          "XPathExtract",
                                                          "XPathExtractToVars",
                                                          "SharedMapDeleter",
                                                          "SharedMapRemover",
                                                          "SharedMapSetter",
                                                          "SharedMapGetter",
                                                          "RandomNumberToVar",
                                                          "VarsToSharedMap",
                                                          "SharedMapToVars",
                                                          "AntivirusFileChecker",
                                                          "MtomExtractor",
                                                          "JsonTransformer",
                                                          "SetVar",
                                                          "GraphQLRequestValidation",
                                                          "ProtobufValidation",
                                                          "OpenApiValidation",
                                                          "DelimiterSplitter",
                                                          "VarsToFile",
                                                          "FileToVars",
                                                          "WsdlValidation",
                                                          "HttpFilter",
                                                          "ProtobufToJson",
                                                          "FilterMds",
                                                          "OcspSignValidator",
                                                          "OcspToJson",
                                                          "ASN1ToJson",
                                                          "XmlTransformer",
                                                          "UrlEncode",
                                                          "UrlDecodeUni",
                                                          "UrlDecode",
                                                          "HexDecode",
                                                          "HexEncode",
                                                          "ToLowerCase",
                                                          "ToUpperCase",
                                                          "Utf8ToUnicode",
                                                          "Trim",
                                                          "ICAPFileChecker",
                                                          "MessageToFile",
                                                          "MultipartFormGenerateFromVar",
                                                          "HttpSender",
                                                          "MessageAccumulator",
                                                          "MessageFromAccumulator",
                                                          "MessageFromPattern",
                                                          "MultipartFormGenerateFromMessage",
                                                          "JsonPatchMessage",
                                                          "JsonPatchVar",
                                                          "DigestFromMessage",
                                                          "Base64Encode",
                                                          "HMac",
                                                          "FileToMessage",
                                                          "JwtVerifier",
                                                          "CharsetChecker",
                                                          "LdapSearch",
                                                          "UnicodeDecode",
                                                          "MessageMapper",
                                                          "SimpleRateLimiter",
                                                          "EventSourceConverter",
                                                          "LazySessionTimeChecker",
                                                          "CalculateMessageProperties"
                                                        ]
                                                      },
                                                      "id": {
                                                        "description": "An identificator of action",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ]
                                                      },
                                                      "conditions": {
                                                        "description": "Specifies the conditions for performina an action.",
                                                        "type": "array",
                                                        "items": {
                                                          "type": "object",
                                                          "additionalProperties": false,
                                                          "properties": {
                                                            "var": {
                                                              "description": "Specifies a variable to check.",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ]
                                                            },
                                                            "operator": {
                                                              "description": "Specifies an operator.",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ],
                                                              "enum": [
                                                                "=",
                                                                "!=",
                                                                "<=",
                                                                ">=",
                                                                ">",
                                                                "<",
                                                                "in",
                                                                "not_in",
                                                                "~",
                                                                "~*",
                                                                "!~",
                                                                "!~*",
                                                                "ip_range",
                                                                "!ip_range",
                                                                "dn_mask",
                                                                "!dn_mask"
                                                              ]
                                                            },
                                                            "val": {
                                                              "description": "Specifies a value to check.",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ]
                                                            }
                                                          },
                                                          "required": [
                                                            "var",
                                                            "operator",
                                                            "val"
                                                          ]
                                                        }
                                                      },
                                                      "trace_config": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "enableAllActions": {
                                                            "description": "enable tracing of all actions in chains",
                                                            "type": "boolean"
                                                          },
                                                          "enableAllChains": {
                                                            "description": "enable tracing of all actions in child chains",
                                                            "type": "boolean"
                                                          },
                                                          "mode": {
                                                            "description": "Enable or disable tracing at this level.",
                                                            "type": "object",
                                                            "additionalProperties": false,
                                                            "properties": {
                                                              "enabled": {
                                                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                "type": [
                                                                  "number",
                                                                  "string"
                                                                ],
                                                                "enum": [
                                                                  "on",
                                                                  "off",
                                                                  "var_based"
                                                                ]
                                                              },
                                                              "var": {
                                                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                "type": [
                                                                  "number",
                                                                  "string"
                                                                ]
                                                              }
                                                            }
                                                          },
                                                          "spanAttributes": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "name": {
                                                                  "description": "name of attribute",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "value": {
                                                                  "description": "value of attribute, can contain variables",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                }
                                                              }
                                                            }
                                                          },
                                                          "spanName": {
                                                            "description": "Specify name of span",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "enableSocketsTracing": {
                                                            "description": "Enable or disable socket tracing, by default enabled",
                                                            "type": "boolean"
                                                          }
                                                        }
                                                      },
                                                      "params": {
                                                        "description": "Specifies extra parameters for the actions.",
                                                        "type": "object",
                                                        "additionalProperties": true
                                                      },
                                                      "requiredChildOneOf": {
                                                        "description": "Specifies unverifed action check",
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "decision": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ],
                                                            "enum": [
                                                              "BLOCK",
                                                              "WARN"
                                                            ]
                                                          },
                                                          "onlyCheckers": {
                                                            "type": "boolean"
                                                          },
                                                          "include": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ]
                                                            }
                                                          },
                                                          "exclude": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "decision"
                                                        ],
                                                        "allOf": [
                                                          {
                                                            "if": {
                                                              "type": "object",
                                                              "required": [
                                                                "exclude"
                                                              ],
                                                              "properties": {
                                                                "exclude": {}
                                                              }
                                                            },
                                                            "then": {
                                                              "not": {
                                                                "required": [
                                                                  "include"
                                                                ]
                                                              }
                                                            }
                                                          },
                                                          {
                                                            "if": {
                                                              "type": "object",
                                                              "required": [
                                                                "include"
                                                              ],
                                                              "properties": {
                                                                "include": {}
                                                              }
                                                            },
                                                            "then": {
                                                              "not": {
                                                                "required": [
                                                                  "exclude"
                                                                ]
                                                              }
                                                            }
                                                          }
                                                        ]
                                                      },
                                                      "actions": {
                                                        "description": "Specifies a list of actions.",
                                                        "type": "array",
                                                        "items": {
                                                          "type": "object",
                                                          "additionalProperties": false,
                                                          "properties": {
                                                            "action": {
                                                              "description": "Specifies an action to perform",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ],
                                                              "enum": [
                                                                "ASN1ContentExtractor",
                                                                "Base64Decode",
                                                                "ConditionChecker",
                                                                "CheckDataSize",
                                                                "CheckMimeType",
                                                                "JsonPathExtract",
                                                                "JsonPathExtractToVars",
                                                                "JsonValidation",
                                                                "XsdValidation",
                                                                "PostFormDataToFlateJson",
                                                                "MultipartExtract",
                                                                "SetMessageFromVar",
                                                                "SetVarFromMessage",
                                                                "JwsToJson",
                                                                "XPathExtract",
                                                                "XPathExtractToVars",
                                                                "SharedMapDeleter",
                                                                "SharedMapRemover",
                                                                "SharedMapSetter",
                                                                "SharedMapGetter",
                                                                "RandomNumberToVar",
                                                                "VarsToSharedMap",
                                                                "SharedMapToVars",
                                                                "AntivirusFileChecker",
                                                                "MtomExtractor",
                                                                "JsonTransformer",
                                                                "SetVar",
                                                                "GraphQLRequestValidation",
                                                                "ProtobufValidation",
                                                                "OpenApiValidation",
                                                                "DelimiterSplitter",
                                                                "VarsToFile",
                                                                "FileToVars",
                                                                "WsdlValidation",
                                                                "HttpFilter",
                                                                "ProtobufToJson",
                                                                "FilterMds",
                                                                "OcspSignValidator",
                                                                "OcspToJson",
                                                                "ASN1ToJson",
                                                                "XmlTransformer",
                                                                "UrlEncode",
                                                                "UrlDecodeUni",
                                                                "UrlDecode",
                                                                "HexDecode",
                                                                "HexEncode",
                                                                "ToLowerCase",
                                                                "ToUpperCase",
                                                                "Utf8ToUnicode",
                                                                "Trim",
                                                                "ICAPFileChecker",
                                                                "MessageToFile",
                                                                "MultipartFormGenerateFromVar",
                                                                "HttpSender",
                                                                "MessageAccumulator",
                                                                "MessageFromAccumulator",
                                                                "MessageFromPattern",
                                                                "MultipartFormGenerateFromMessage",
                                                                "JsonPatchMessage",
                                                                "JsonPatchVar",
                                                                "DigestFromMessage",
                                                                "Base64Encode",
                                                                "HMac",
                                                                "FileToMessage",
                                                                "JwtVerifier",
                                                                "CharsetChecker",
                                                                "LdapSearch",
                                                                "UnicodeDecode",
                                                                "MessageMapper",
                                                                "SimpleRateLimiter",
                                                                "EventSourceConverter",
                                                                "LazySessionTimeChecker",
                                                                "CalculateMessageProperties"
                                                              ]
                                                            },
                                                            "id": {
                                                              "description": "An identificator of action",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ]
                                                            },
                                                            "conditions": {
                                                              "description": "Specifies the conditions for performina an action.",
                                                              "type": "array",
                                                              "items": {
                                                                "type": "object",
                                                                "additionalProperties": false,
                                                                "properties": {
                                                                  "var": {
                                                                    "description": "Specifies a variable to check.",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ]
                                                                  },
                                                                  "operator": {
                                                                    "description": "Specifies an operator.",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ],
                                                                    "enum": [
                                                                      "=",
                                                                      "!=",
                                                                      "<=",
                                                                      ">=",
                                                                      ">",
                                                                      "<",
                                                                      "in",
                                                                      "not_in",
                                                                      "~",
                                                                      "~*",
                                                                      "!~",
                                                                      "!~*",
                                                                      "ip_range",
                                                                      "!ip_range",
                                                                      "dn_mask",
                                                                      "!dn_mask"
                                                                    ]
                                                                  },
                                                                  "val": {
                                                                    "description": "Specifies a value to check.",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ]
                                                                  }
                                                                },
                                                                "required": [
                                                                  "var",
                                                                  "operator",
                                                                  "val"
                                                                ]
                                                              }
                                                            },
                                                            "trace_config": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "enableAllActions": {
                                                                  "description": "enable tracing of all actions in chains",
                                                                  "type": "boolean"
                                                                },
                                                                "enableAllChains": {
                                                                  "description": "enable tracing of all actions in child chains",
                                                                  "type": "boolean"
                                                                },
                                                                "mode": {
                                                                  "description": "Enable or disable tracing at this level.",
                                                                  "type": "object",
                                                                  "additionalProperties": false,
                                                                  "properties": {
                                                                    "enabled": {
                                                                      "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                      "type": [
                                                                        "number",
                                                                        "string"
                                                                      ],
                                                                      "enum": [
                                                                        "on",
                                                                        "off",
                                                                        "var_based"
                                                                      ]
                                                                    },
                                                                    "var": {
                                                                      "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                      "type": [
                                                                        "number",
                                                                        "string"
                                                                      ]
                                                                    }
                                                                  }
                                                                },
                                                                "spanAttributes": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "name": {
                                                                        "description": "name of attribute",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "value": {
                                                                        "description": "value of attribute, can contain variables",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      }
                                                                    }
                                                                  }
                                                                },
                                                                "spanName": {
                                                                  "description": "Specify name of span",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "enableSocketsTracing": {
                                                                  "description": "Enable or disable socket tracing, by default enabled",
                                                                  "type": "boolean"
                                                                }
                                                              }
                                                            },
                                                            "params": {
                                                              "description": "Specifies extra parameters for the actions.",
                                                              "type": "object",
                                                              "additionalProperties": true
                                                            },
                                                            "requiredChildOneOf": {
                                                              "description": "Specifies unverifed action check",
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "decision": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ],
                                                                  "enum": [
                                                                    "BLOCK",
                                                                    "WARN"
                                                                  ]
                                                                },
                                                                "onlyCheckers": {
                                                                  "type": "boolean"
                                                                },
                                                                "include": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ]
                                                                  }
                                                                },
                                                                "exclude": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "string"
                                                                  }
                                                                }
                                                              },
                                                              "required": [
                                                                "decision"
                                                              ],
                                                              "allOf": [
                                                                {
                                                                  "if": {
                                                                    "type": "object",
                                                                    "required": [
                                                                      "exclude"
                                                                    ],
                                                                    "properties": {
                                                                      "exclude": {}
                                                                    }
                                                                  },
                                                                  "then": {
                                                                    "not": {
                                                                      "required": [
                                                                        "include"
                                                                      ]
                                                                    }
                                                                  }
                                                                },
                                                                {
                                                                  "if": {
                                                                    "type": "object",
                                                                    "required": [
                                                                      "include"
                                                                    ],
                                                                    "properties": {
                                                                      "include": {}
                                                                    }
                                                                  },
                                                                  "then": {
                                                                    "not": {
                                                                      "required": [
                                                                        "exclude"
                                                                      ]
                                                                    }
                                                                  }
                                                                }
                                                              ]
                                                            },
                                                            "actions": {
                                                              "description": "Specifies a list of actions.",
                                                              "type": "array",
                                                              "items": {
                                                                "type": "object",
                                                                "additionalProperties": false,
                                                                "properties": {
                                                                  "action": {
                                                                    "description": "Specifies an action to perform",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ],
                                                                    "enum": [
                                                                      "ASN1ContentExtractor",
                                                                      "Base64Decode",
                                                                      "ConditionChecker",
                                                                      "CheckDataSize",
                                                                      "CheckMimeType",
                                                                      "JsonPathExtract",
                                                                      "JsonPathExtractToVars",
                                                                      "JsonValidation",
                                                                      "XsdValidation",
                                                                      "PostFormDataToFlateJson",
                                                                      "MultipartExtract",
                                                                      "SetMessageFromVar",
                                                                      "SetVarFromMessage",
                                                                      "JwsToJson",
                                                                      "XPathExtract",
                                                                      "XPathExtractToVars",
                                                                      "SharedMapDeleter",
                                                                      "SharedMapRemover",
                                                                      "SharedMapSetter",
                                                                      "SharedMapGetter",
                                                                      "RandomNumberToVar",
                                                                      "VarsToSharedMap",
                                                                      "SharedMapToVars",
                                                                      "AntivirusFileChecker",
                                                                      "MtomExtractor",
                                                                      "JsonTransformer",
                                                                      "SetVar",
                                                                      "GraphQLRequestValidation",
                                                                      "ProtobufValidation",
                                                                      "OpenApiValidation",
                                                                      "DelimiterSplitter",
                                                                      "VarsToFile",
                                                                      "FileToVars",
                                                                      "WsdlValidation",
                                                                      "HttpFilter",
                                                                      "ProtobufToJson",
                                                                      "FilterMds",
                                                                      "OcspSignValidator",
                                                                      "OcspToJson",
                                                                      "ASN1ToJson",
                                                                      "XmlTransformer",
                                                                      "UrlEncode",
                                                                      "UrlDecodeUni",
                                                                      "UrlDecode",
                                                                      "HexDecode",
                                                                      "HexEncode",
                                                                      "ToLowerCase",
                                                                      "ToUpperCase",
                                                                      "Utf8ToUnicode",
                                                                      "Trim",
                                                                      "ICAPFileChecker",
                                                                      "MessageToFile",
                                                                      "MultipartFormGenerateFromVar",
                                                                      "HttpSender",
                                                                      "MessageAccumulator",
                                                                      "MessageFromAccumulator",
                                                                      "MessageFromPattern",
                                                                      "MultipartFormGenerateFromMessage",
                                                                      "JsonPatchMessage",
                                                                      "JsonPatchVar",
                                                                      "DigestFromMessage",
                                                                      "Base64Encode",
                                                                      "HMac",
                                                                      "FileToMessage",
                                                                      "JwtVerifier",
                                                                      "CharsetChecker",
                                                                      "LdapSearch",
                                                                      "UnicodeDecode",
                                                                      "MessageMapper",
                                                                      "SimpleRateLimiter",
                                                                      "EventSourceConverter",
                                                                      "LazySessionTimeChecker",
                                                                      "CalculateMessageProperties"
                                                                    ]
                                                                  },
                                                                  "id": {
                                                                    "description": "An identificator of action",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ]
                                                                  },
                                                                  "conditions": {
                                                                    "description": "Specifies the conditions for performina an action.",
                                                                    "type": "array",
                                                                    "items": {
                                                                      "type": "object",
                                                                      "additionalProperties": false,
                                                                      "properties": {
                                                                        "var": {
                                                                          "description": "Specifies a variable to check.",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ]
                                                                        },
                                                                        "operator": {
                                                                          "description": "Specifies an operator.",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ],
                                                                          "enum": [
                                                                            "=",
                                                                            "!=",
                                                                            "<=",
                                                                            ">=",
                                                                            ">",
                                                                            "<",
                                                                            "in",
                                                                            "not_in",
                                                                            "~",
                                                                            "~*",
                                                                            "!~",
                                                                            "!~*",
                                                                            "ip_range",
                                                                            "!ip_range",
                                                                            "dn_mask",
                                                                            "!dn_mask"
                                                                          ]
                                                                        },
                                                                        "val": {
                                                                          "description": "Specifies a value to check.",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "required": [
                                                                        "var",
                                                                        "operator",
                                                                        "val"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "trace_config": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "enableAllActions": {
                                                                        "description": "enable tracing of all actions in chains",
                                                                        "type": "boolean"
                                                                      },
                                                                      "enableAllChains": {
                                                                        "description": "enable tracing of all actions in child chains",
                                                                        "type": "boolean"
                                                                      },
                                                                      "mode": {
                                                                        "description": "Enable or disable tracing at this level.",
                                                                        "type": "object",
                                                                        "additionalProperties": false,
                                                                        "properties": {
                                                                          "enabled": {
                                                                            "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                            "type": [
                                                                              "number",
                                                                              "string"
                                                                            ],
                                                                            "enum": [
                                                                              "on",
                                                                              "off",
                                                                              "var_based"
                                                                            ]
                                                                          },
                                                                          "var": {
                                                                            "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                            "type": [
                                                                              "number",
                                                                              "string"
                                                                            ]
                                                                          }
                                                                        }
                                                                      },
                                                                      "spanAttributes": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "name": {
                                                                              "description": "name of attribute",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "value": {
                                                                              "description": "value of attribute, can contain variables",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            }
                                                                          }
                                                                        }
                                                                      },
                                                                      "spanName": {
                                                                        "description": "Specify name of span",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "enableSocketsTracing": {
                                                                        "description": "Enable or disable socket tracing, by default enabled",
                                                                        "type": "boolean"
                                                                      }
                                                                    }
                                                                  },
                                                                  "params": {
                                                                    "description": "Specifies extra parameters for the actions.",
                                                                    "type": "object",
                                                                    "additionalProperties": true
                                                                  },
                                                                  "requiredChildOneOf": {
                                                                    "description": "Specifies unverifed action check",
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "decision": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ],
                                                                        "enum": [
                                                                          "BLOCK",
                                                                          "WARN"
                                                                        ]
                                                                      },
                                                                      "onlyCheckers": {
                                                                        "type": "boolean"
                                                                      },
                                                                      "include": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "exclude": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "string"
                                                                        }
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "decision"
                                                                    ],
                                                                    "allOf": [
                                                                      {
                                                                        "if": {
                                                                          "type": "object",
                                                                          "required": [
                                                                            "exclude"
                                                                          ],
                                                                          "properties": {
                                                                            "exclude": {}
                                                                          }
                                                                        },
                                                                        "then": {
                                                                          "not": {
                                                                            "required": [
                                                                              "include"
                                                                            ]
                                                                          }
                                                                        }
                                                                      },
                                                                      {
                                                                        "if": {
                                                                          "type": "object",
                                                                          "required": [
                                                                            "include"
                                                                          ],
                                                                          "properties": {
                                                                            "include": {}
                                                                          }
                                                                        },
                                                                        "then": {
                                                                          "not": {
                                                                            "required": [
                                                                              "exclude"
                                                                            ]
                                                                          }
                                                                        }
                                                                      }
                                                                    ]
                                                                  },
                                                                  "actions": {
                                                                    "description": "Specifies a list of actions.",
                                                                    "type": "array",
                                                                    "items": {
                                                                      "type": "object",
                                                                      "additionalProperties": false,
                                                                      "properties": {
                                                                        "action": {
                                                                          "description": "Specifies an action to perform",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ],
                                                                          "enum": [
                                                                            "ASN1ContentExtractor",
                                                                            "Base64Decode",
                                                                            "ConditionChecker",
                                                                            "CheckDataSize",
                                                                            "CheckMimeType",
                                                                            "JsonPathExtract",
                                                                            "JsonPathExtractToVars",
                                                                            "JsonValidation",
                                                                            "XsdValidation",
                                                                            "PostFormDataToFlateJson",
                                                                            "MultipartExtract",
                                                                            "SetMessageFromVar",
                                                                            "SetVarFromMessage",
                                                                            "JwsToJson",
                                                                            "XPathExtract",
                                                                            "XPathExtractToVars",
                                                                            "SharedMapDeleter",
                                                                            "SharedMapRemover",
                                                                            "SharedMapSetter",
                                                                            "SharedMapGetter",
                                                                            "RandomNumberToVar",
                                                                            "VarsToSharedMap",
                                                                            "SharedMapToVars",
                                                                            "AntivirusFileChecker",
                                                                            "MtomExtractor",
                                                                            "JsonTransformer",
                                                                            "SetVar",
                                                                            "GraphQLRequestValidation",
                                                                            "ProtobufValidation",
                                                                            "OpenApiValidation",
                                                                            "DelimiterSplitter",
                                                                            "VarsToFile",
                                                                            "FileToVars",
                                                                            "WsdlValidation",
                                                                            "HttpFilter",
                                                                            "ProtobufToJson",
                                                                            "FilterMds",
                                                                            "OcspSignValidator",
                                                                            "OcspToJson",
                                                                            "ASN1ToJson",
                                                                            "XmlTransformer",
                                                                            "UrlEncode",
                                                                            "UrlDecodeUni",
                                                                            "UrlDecode",
                                                                            "HexDecode",
                                                                            "HexEncode",
                                                                            "ToLowerCase",
                                                                            "ToUpperCase",
                                                                            "Utf8ToUnicode",
                                                                            "Trim",
                                                                            "ICAPFileChecker",
                                                                            "MessageToFile",
                                                                            "MultipartFormGenerateFromVar",
                                                                            "HttpSender",
                                                                            "MessageAccumulator",
                                                                            "MessageFromAccumulator",
                                                                            "MessageFromPattern",
                                                                            "MultipartFormGenerateFromMessage",
                                                                            "JsonPatchMessage",
                                                                            "JsonPatchVar",
                                                                            "DigestFromMessage",
                                                                            "Base64Encode",
                                                                            "HMac",
                                                                            "FileToMessage",
                                                                            "JwtVerifier",
                                                                            "CharsetChecker",
                                                                            "LdapSearch",
                                                                            "UnicodeDecode",
                                                                            "MessageMapper",
                                                                            "SimpleRateLimiter",
                                                                            "EventSourceConverter",
                                                                            "LazySessionTimeChecker",
                                                                            "CalculateMessageProperties"
                                                                          ]
                                                                        },
                                                                        "id": {
                                                                          "description": "An identificator of action",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ]
                                                                        },
                                                                        "conditions": {
                                                                          "description": "Specifies the conditions for performina an action.",
                                                                          "type": "array",
                                                                          "items": {
                                                                            "type": "object",
                                                                            "additionalProperties": false,
                                                                            "properties": {
                                                                              "var": {
                                                                                "description": "Specifies a variable to check.",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ]
                                                                              },
                                                                              "operator": {
                                                                                "description": "Specifies an operator.",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ],
                                                                                "enum": [
                                                                                  "=",
                                                                                  "!=",
                                                                                  "<=",
                                                                                  ">=",
                                                                                  ">",
                                                                                  "<",
                                                                                  "in",
                                                                                  "not_in",
                                                                                  "~",
                                                                                  "~*",
                                                                                  "!~",
                                                                                  "!~*",
                                                                                  "ip_range",
                                                                                  "!ip_range",
                                                                                  "dn_mask",
                                                                                  "!dn_mask"
                                                                                ]
                                                                              },
                                                                              "val": {
                                                                                "description": "Specifies a value to check.",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ]
                                                                              }
                                                                            },
                                                                            "required": [
                                                                              "var",
                                                                              "operator",
                                                                              "val"
                                                                            ]
                                                                          }
                                                                        },
                                                                        "trace_config": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "enableAllActions": {
                                                                              "description": "enable tracing of all actions in chains",
                                                                              "type": "boolean"
                                                                            },
                                                                            "enableAllChains": {
                                                                              "description": "enable tracing of all actions in child chains",
                                                                              "type": "boolean"
                                                                            },
                                                                            "mode": {
                                                                              "description": "Enable or disable tracing at this level.",
                                                                              "type": "object",
                                                                              "additionalProperties": false,
                                                                              "properties": {
                                                                                "enabled": {
                                                                                  "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                  "type": [
                                                                                    "number",
                                                                                    "string"
                                                                                  ],
                                                                                  "enum": [
                                                                                    "on",
                                                                                    "off",
                                                                                    "var_based"
                                                                                  ]
                                                                                },
                                                                                "var": {
                                                                                  "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                  "type": [
                                                                                    "number",
                                                                                    "string"
                                                                                  ]
                                                                                }
                                                                              }
                                                                            },
                                                                            "spanAttributes": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "name": {
                                                                                    "description": "name of attribute",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "value": {
                                                                                    "description": "value of attribute, can contain variables",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  }
                                                                                }
                                                                              }
                                                                            },
                                                                            "spanName": {
                                                                              "description": "Specify name of span",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "enableSocketsTracing": {
                                                                              "description": "Enable or disable socket tracing, by default enabled",
                                                                              "type": "boolean"
                                                                            }
                                                                          }
                                                                        },
                                                                        "params": {
                                                                          "description": "Specifies extra parameters for the actions.",
                                                                          "type": "object",
                                                                          "additionalProperties": true
                                                                        },
                                                                        "requiredChildOneOf": {
                                                                          "description": "Specifies unverifed action check",
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "decision": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ],
                                                                              "enum": [
                                                                                "BLOCK",
                                                                                "WARN"
                                                                              ]
                                                                            },
                                                                            "onlyCheckers": {
                                                                              "type": "boolean"
                                                                            },
                                                                            "include": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ]
                                                                              }
                                                                            },
                                                                            "exclude": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "string"
                                                                              }
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "decision"
                                                                          ],
                                                                          "allOf": [
                                                                            {
                                                                              "if": {
                                                                                "type": "object",
                                                                                "required": [
                                                                                  "exclude"
                                                                                ],
                                                                                "properties": {
                                                                                  "exclude": {}
                                                                                }
                                                                              },
                                                                              "then": {
                                                                                "not": {
                                                                                  "required": [
                                                                                    "include"
                                                                                  ]
                                                                                }
                                                                              }
                                                                            },
                                                                            {
                                                                              "if": {
                                                                                "type": "object",
                                                                                "required": [
                                                                                  "include"
                                                                                ],
                                                                                "properties": {
                                                                                  "include": {}
                                                                                }
                                                                              },
                                                                              "then": {
                                                                                "not": {
                                                                                  "required": [
                                                                                    "exclude"
                                                                                  ]
                                                                                }
                                                                              }
                                                                            }
                                                                          ]
                                                                        },
                                                                        "actions": {
                                                                          "description": "Specifies a list of actions.",
                                                                          "type": "array",
                                                                          "items": {
                                                                            "type": "object",
                                                                            "additionalProperties": false,
                                                                            "properties": {
                                                                              "action": {
                                                                                "description": "Specifies an action to perform",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ],
                                                                                "enum": [
                                                                                  "ASN1ContentExtractor",
                                                                                  "Base64Decode",
                                                                                  "ConditionChecker",
                                                                                  "CheckDataSize",
                                                                                  "CheckMimeType",
                                                                                  "JsonPathExtract",
                                                                                  "JsonPathExtractToVars",
                                                                                  "JsonValidation",
                                                                                  "XsdValidation",
                                                                                  "PostFormDataToFlateJson",
                                                                                  "MultipartExtract",
                                                                                  "SetMessageFromVar",
                                                                                  "SetVarFromMessage",
                                                                                  "JwsToJson",
                                                                                  "XPathExtract",
                                                                                  "XPathExtractToVars",
                                                                                  "SharedMapDeleter",
                                                                                  "SharedMapRemover",
                                                                                  "SharedMapSetter",
                                                                                  "SharedMapGetter",
                                                                                  "RandomNumberToVar",
                                                                                  "VarsToSharedMap",
                                                                                  "SharedMapToVars",
                                                                                  "AntivirusFileChecker",
                                                                                  "MtomExtractor",
                                                                                  "JsonTransformer",
                                                                                  "SetVar",
                                                                                  "GraphQLRequestValidation",
                                                                                  "ProtobufValidation",
                                                                                  "OpenApiValidation",
                                                                                  "DelimiterSplitter",
                                                                                  "VarsToFile",
                                                                                  "FileToVars",
                                                                                  "WsdlValidation",
                                                                                  "HttpFilter",
                                                                                  "ProtobufToJson",
                                                                                  "FilterMds",
                                                                                  "OcspSignValidator",
                                                                                  "OcspToJson",
                                                                                  "ASN1ToJson",
                                                                                  "XmlTransformer",
                                                                                  "UrlEncode",
                                                                                  "UrlDecodeUni",
                                                                                  "UrlDecode",
                                                                                  "HexDecode",
                                                                                  "HexEncode",
                                                                                  "ToLowerCase",
                                                                                  "ToUpperCase",
                                                                                  "Utf8ToUnicode",
                                                                                  "Trim",
                                                                                  "ICAPFileChecker",
                                                                                  "MessageToFile",
                                                                                  "MultipartFormGenerateFromVar",
                                                                                  "HttpSender",
                                                                                  "MessageAccumulator",
                                                                                  "MessageFromAccumulator",
                                                                                  "MessageFromPattern",
                                                                                  "MultipartFormGenerateFromMessage",
                                                                                  "JsonPatchMessage",
                                                                                  "JsonPatchVar",
                                                                                  "DigestFromMessage",
                                                                                  "Base64Encode",
                                                                                  "HMac",
                                                                                  "FileToMessage",
                                                                                  "JwtVerifier",
                                                                                  "CharsetChecker",
                                                                                  "LdapSearch",
                                                                                  "UnicodeDecode",
                                                                                  "MessageMapper",
                                                                                  "SimpleRateLimiter",
                                                                                  "EventSourceConverter",
                                                                                  "LazySessionTimeChecker",
                                                                                  "CalculateMessageProperties"
                                                                                ]
                                                                              },
                                                                              "id": {
                                                                                "description": "An identificator of action",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ]
                                                                              },
                                                                              "conditions": {
                                                                                "description": "Specifies the conditions for performina an action.",
                                                                                "type": "array",
                                                                                "items": {
                                                                                  "type": "object",
                                                                                  "additionalProperties": false,
                                                                                  "properties": {
                                                                                    "var": {
                                                                                      "description": "Specifies a variable to check.",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ]
                                                                                    },
                                                                                    "operator": {
                                                                                      "description": "Specifies an operator.",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ],
                                                                                      "enum": [
                                                                                        "=",
                                                                                        "!=",
                                                                                        "<=",
                                                                                        ">=",
                                                                                        ">",
                                                                                        "<",
                                                                                        "in",
                                                                                        "not_in",
                                                                                        "~",
                                                                                        "~*",
                                                                                        "!~",
                                                                                        "!~*",
                                                                                        "ip_range",
                                                                                        "!ip_range",
                                                                                        "dn_mask",
                                                                                        "!dn_mask"
                                                                                      ]
                                                                                    },
                                                                                    "val": {
                                                                                      "description": "Specifies a value to check.",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ]
                                                                                    }
                                                                                  },
                                                                                  "required": [
                                                                                    "var",
                                                                                    "operator",
                                                                                    "val"
                                                                                  ]
                                                                                }
                                                                              },
                                                                              "trace_config": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "enableAllActions": {
                                                                                    "description": "enable tracing of all actions in chains",
                                                                                    "type": "boolean"
                                                                                  },
                                                                                  "enableAllChains": {
                                                                                    "description": "enable tracing of all actions in child chains",
                                                                                    "type": "boolean"
                                                                                  },
                                                                                  "mode": {
                                                                                    "description": "Enable or disable tracing at this level.",
                                                                                    "type": "object",
                                                                                    "additionalProperties": false,
                                                                                    "properties": {
                                                                                      "enabled": {
                                                                                        "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                        "type": [
                                                                                          "number",
                                                                                          "string"
                                                                                        ],
                                                                                        "enum": [
                                                                                          "on",
                                                                                          "off",
                                                                                          "var_based"
                                                                                        ]
                                                                                      },
                                                                                      "var": {
                                                                                        "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                        "type": [
                                                                                          "number",
                                                                                          "string"
                                                                                        ]
                                                                                      }
                                                                                    }
                                                                                  },
                                                                                  "spanAttributes": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "name": {
                                                                                          "description": "name of attribute",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "value": {
                                                                                          "description": "value of attribute, can contain variables",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        }
                                                                                      }
                                                                                    }
                                                                                  },
                                                                                  "spanName": {
                                                                                    "description": "Specify name of span",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "enableSocketsTracing": {
                                                                                    "description": "Enable or disable socket tracing, by default enabled",
                                                                                    "type": "boolean"
                                                                                  }
                                                                                }
                                                                              },
                                                                              "params": {
                                                                                "description": "Specifies extra parameters for the actions.",
                                                                                "type": "object",
                                                                                "additionalProperties": true
                                                                              },
                                                                              "requiredChildOneOf": {
                                                                                "description": "Specifies unverifed action check",
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "decision": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ],
                                                                                    "enum": [
                                                                                      "BLOCK",
                                                                                      "WARN"
                                                                                    ]
                                                                                  },
                                                                                  "onlyCheckers": {
                                                                                    "type": "boolean"
                                                                                  },
                                                                                  "include": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ]
                                                                                    }
                                                                                  },
                                                                                  "exclude": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "string"
                                                                                    }
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "decision"
                                                                                ],
                                                                                "allOf": [
                                                                                  {
                                                                                    "if": {
                                                                                      "type": "object",
                                                                                      "required": [
                                                                                        "exclude"
                                                                                      ],
                                                                                      "properties": {
                                                                                        "exclude": {}
                                                                                      }
                                                                                    },
                                                                                    "then": {
                                                                                      "not": {
                                                                                        "required": [
                                                                                          "include"
                                                                                        ]
                                                                                      }
                                                                                    }
                                                                                  },
                                                                                  {
                                                                                    "if": {
                                                                                      "type": "object",
                                                                                      "required": [
                                                                                        "include"
                                                                                      ],
                                                                                      "properties": {
                                                                                        "include": {}
                                                                                      }
                                                                                    },
                                                                                    "then": {
                                                                                      "not": {
                                                                                        "required": [
                                                                                          "exclude"
                                                                                        ]
                                                                                      }
                                                                                    }
                                                                                  }
                                                                                ]
                                                                              },
                                                                              "actions": {
                                                                                "description": "Specifies a list of actions.",
                                                                                "type": "array",
                                                                                "items": {
                                                                                  "type": "object",
                                                                                  "additionalProperties": false,
                                                                                  "properties": {
                                                                                    "action": {
                                                                                      "description": "Specifies an action to perform",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ],
                                                                                      "enum": [
                                                                                        "ASN1ContentExtractor",
                                                                                        "Base64Decode",
                                                                                        "ConditionChecker",
                                                                                        "CheckDataSize",
                                                                                        "CheckMimeType",
                                                                                        "JsonPathExtract",
                                                                                        "JsonPathExtractToVars",
                                                                                        "JsonValidation",
                                                                                        "XsdValidation",
                                                                                        "PostFormDataToFlateJson",
                                                                                        "MultipartExtract",
                                                                                        "SetMessageFromVar",
                                                                                        "SetVarFromMessage",
                                                                                        "JwsToJson",
                                                                                        "XPathExtract",
                                                                                        "XPathExtractToVars",
                                                                                        "SharedMapDeleter",
                                                                                        "SharedMapRemover",
                                                                                        "SharedMapSetter",
                                                                                        "SharedMapGetter",
                                                                                        "RandomNumberToVar",
                                                                                        "VarsToSharedMap",
                                                                                        "SharedMapToVars",
                                                                                        "AntivirusFileChecker",
                                                                                        "MtomExtractor",
                                                                                        "JsonTransformer",
                                                                                        "SetVar",
                                                                                        "GraphQLRequestValidation",
                                                                                        "ProtobufValidation",
                                                                                        "OpenApiValidation",
                                                                                        "DelimiterSplitter",
                                                                                        "VarsToFile",
                                                                                        "FileToVars",
                                                                                        "WsdlValidation",
                                                                                        "HttpFilter",
                                                                                        "ProtobufToJson",
                                                                                        "FilterMds",
                                                                                        "OcspSignValidator",
                                                                                        "OcspToJson",
                                                                                        "ASN1ToJson",
                                                                                        "XmlTransformer",
                                                                                        "UrlEncode",
                                                                                        "UrlDecodeUni",
                                                                                        "UrlDecode",
                                                                                        "HexDecode",
                                                                                        "HexEncode",
                                                                                        "ToLowerCase",
                                                                                        "ToUpperCase",
                                                                                        "Utf8ToUnicode",
                                                                                        "Trim",
                                                                                        "ICAPFileChecker",
                                                                                        "MessageToFile",
                                                                                        "MultipartFormGenerateFromVar",
                                                                                        "HttpSender",
                                                                                        "MessageAccumulator",
                                                                                        "MessageFromAccumulator",
                                                                                        "MessageFromPattern",
                                                                                        "MultipartFormGenerateFromMessage",
                                                                                        "JsonPatchMessage",
                                                                                        "JsonPatchVar",
                                                                                        "DigestFromMessage",
                                                                                        "Base64Encode",
                                                                                        "HMac",
                                                                                        "FileToMessage",
                                                                                        "JwtVerifier",
                                                                                        "CharsetChecker",
                                                                                        "LdapSearch",
                                                                                        "UnicodeDecode",
                                                                                        "MessageMapper",
                                                                                        "SimpleRateLimiter",
                                                                                        "EventSourceConverter",
                                                                                        "LazySessionTimeChecker",
                                                                                        "CalculateMessageProperties"
                                                                                      ]
                                                                                    },
                                                                                    "id": {
                                                                                      "description": "An identificator of action",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ]
                                                                                    },
                                                                                    "conditions": {
                                                                                      "description": "Specifies the conditions for performina an action.",
                                                                                      "type": "array",
                                                                                      "items": {
                                                                                        "type": "object",
                                                                                        "additionalProperties": false,
                                                                                        "properties": {
                                                                                          "var": {
                                                                                            "description": "Specifies a variable to check.",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ]
                                                                                          },
                                                                                          "operator": {
                                                                                            "description": "Specifies an operator.",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ],
                                                                                            "enum": [
                                                                                              "=",
                                                                                              "!=",
                                                                                              "<=",
                                                                                              ">=",
                                                                                              ">",
                                                                                              "<",
                                                                                              "in",
                                                                                              "not_in",
                                                                                              "~",
                                                                                              "~*",
                                                                                              "!~",
                                                                                              "!~*",
                                                                                              "ip_range",
                                                                                              "!ip_range",
                                                                                              "dn_mask",
                                                                                              "!dn_mask"
                                                                                            ]
                                                                                          },
                                                                                          "val": {
                                                                                            "description": "Specifies a value to check.",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ]
                                                                                          }
                                                                                        },
                                                                                        "required": [
                                                                                          "var",
                                                                                          "operator",
                                                                                          "val"
                                                                                        ]
                                                                                      }
                                                                                    },
                                                                                    "trace_config": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "enableAllActions": {
                                                                                          "description": "enable tracing of all actions in chains",
                                                                                          "type": "boolean"
                                                                                        },
                                                                                        "enableAllChains": {
                                                                                          "description": "enable tracing of all actions in child chains",
                                                                                          "type": "boolean"
                                                                                        },
                                                                                        "mode": {
                                                                                          "description": "Enable or disable tracing at this level.",
                                                                                          "type": "object",
                                                                                          "additionalProperties": false,
                                                                                          "properties": {
                                                                                            "enabled": {
                                                                                              "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                              "type": [
                                                                                                "number",
                                                                                                "string"
                                                                                              ],
                                                                                              "enum": [
                                                                                                "on",
                                                                                                "off",
                                                                                                "var_based"
                                                                                              ]
                                                                                            },
                                                                                            "var": {
                                                                                              "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                              "type": [
                                                                                                "number",
                                                                                                "string"
                                                                                              ]
                                                                                            }
                                                                                          }
                                                                                        },
                                                                                        "spanAttributes": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "name": {
                                                                                                "description": "name of attribute",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "value": {
                                                                                                "description": "value of attribute, can contain variables",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              }
                                                                                            }
                                                                                          }
                                                                                        },
                                                                                        "spanName": {
                                                                                          "description": "Specify name of span",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "enableSocketsTracing": {
                                                                                          "description": "Enable or disable socket tracing, by default enabled",
                                                                                          "type": "boolean"
                                                                                        }
                                                                                      }
                                                                                    },
                                                                                    "params": {
                                                                                      "description": "Specifies extra parameters for the actions.",
                                                                                      "type": "object",
                                                                                      "additionalProperties": true
                                                                                    },
                                                                                    "requiredChildOneOf": {
                                                                                      "description": "Specifies unverifed action check",
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "decision": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ],
                                                                                          "enum": [
                                                                                            "BLOCK",
                                                                                            "WARN"
                                                                                          ]
                                                                                        },
                                                                                        "onlyCheckers": {
                                                                                          "type": "boolean"
                                                                                        },
                                                                                        "include": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ]
                                                                                          }
                                                                                        },
                                                                                        "exclude": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "string"
                                                                                          }
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "decision"
                                                                                      ],
                                                                                      "allOf": [
                                                                                        {
                                                                                          "if": {
                                                                                            "type": "object",
                                                                                            "required": [
                                                                                              "exclude"
                                                                                            ],
                                                                                            "properties": {
                                                                                              "exclude": {}
                                                                                            }
                                                                                          },
                                                                                          "then": {
                                                                                            "not": {
                                                                                              "required": [
                                                                                                "include"
                                                                                              ]
                                                                                            }
                                                                                          }
                                                                                        },
                                                                                        {
                                                                                          "if": {
                                                                                            "type": "object",
                                                                                            "required": [
                                                                                              "include"
                                                                                            ],
                                                                                            "properties": {
                                                                                              "include": {}
                                                                                            }
                                                                                          },
                                                                                          "then": {
                                                                                            "not": {
                                                                                              "required": [
                                                                                                "exclude"
                                                                                              ]
                                                                                            }
                                                                                          }
                                                                                        }
                                                                                      ]
                                                                                    },
                                                                                    "actions": {
                                                                                      "description": "Specifies a list of actions.",
                                                                                      "type": "array",
                                                                                      "items": {
                                                                                        "type": "object",
                                                                                        "additionalProperties": false,
                                                                                        "properties": {
                                                                                          "action": {
                                                                                            "description": "Specifies an action to perform",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ],
                                                                                            "enum": [
                                                                                              "ASN1ContentExtractor",
                                                                                              "Base64Decode",
                                                                                              "ConditionChecker",
                                                                                              "CheckDataSize",
                                                                                              "CheckMimeType",
                                                                                              "JsonPathExtract",
                                                                                              "JsonPathExtractToVars",
                                                                                              "JsonValidation",
                                                                                              "XsdValidation",
                                                                                              "PostFormDataToFlateJson",
                                                                                              "MultipartExtract",
                                                                                              "SetMessageFromVar",
                                                                                              "SetVarFromMessage",
                                                                                              "JwsToJson",
                                                                                              "XPathExtract",
                                                                                              "XPathExtractToVars",
                                                                                              "SharedMapDeleter",
                                                                                              "SharedMapRemover",
                                                                                              "SharedMapSetter",
                                                                                              "SharedMapGetter",
                                                                                              "RandomNumberToVar",
                                                                                              "VarsToSharedMap",
                                                                                              "SharedMapToVars",
                                                                                              "AntivirusFileChecker",
                                                                                              "MtomExtractor",
                                                                                              "JsonTransformer",
                                                                                              "SetVar",
                                                                                              "GraphQLRequestValidation",
                                                                                              "ProtobufValidation",
                                                                                              "OpenApiValidation",
                                                                                              "DelimiterSplitter",
                                                                                              "VarsToFile",
                                                                                              "FileToVars",
                                                                                              "WsdlValidation",
                                                                                              "HttpFilter",
                                                                                              "ProtobufToJson",
                                                                                              "FilterMds",
                                                                                              "OcspSignValidator",
                                                                                              "OcspToJson",
                                                                                              "ASN1ToJson",
                                                                                              "XmlTransformer",
                                                                                              "UrlEncode",
                                                                                              "UrlDecodeUni",
                                                                                              "UrlDecode",
                                                                                              "HexDecode",
                                                                                              "HexEncode",
                                                                                              "ToLowerCase",
                                                                                              "ToUpperCase",
                                                                                              "Utf8ToUnicode",
                                                                                              "Trim",
                                                                                              "ICAPFileChecker",
                                                                                              "MessageToFile",
                                                                                              "MultipartFormGenerateFromVar",
                                                                                              "HttpSender",
                                                                                              "MessageAccumulator",
                                                                                              "MessageFromAccumulator",
                                                                                              "MessageFromPattern",
                                                                                              "MultipartFormGenerateFromMessage",
                                                                                              "JsonPatchMessage",
                                                                                              "JsonPatchVar",
                                                                                              "DigestFromMessage",
                                                                                              "Base64Encode",
                                                                                              "HMac",
                                                                                              "FileToMessage",
                                                                                              "JwtVerifier",
                                                                                              "CharsetChecker",
                                                                                              "LdapSearch",
                                                                                              "UnicodeDecode",
                                                                                              "MessageMapper",
                                                                                              "SimpleRateLimiter",
                                                                                              "EventSourceConverter",
                                                                                              "LazySessionTimeChecker",
                                                                                              "CalculateMessageProperties"
                                                                                            ]
                                                                                          },
                                                                                          "id": {
                                                                                            "description": "An identificator of action",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ]
                                                                                          },
                                                                                          "conditions": {
                                                                                            "description": "Specifies the conditions for performina an action.",
                                                                                            "type": "array",
                                                                                            "items": {
                                                                                              "type": "object",
                                                                                              "additionalProperties": false,
                                                                                              "properties": {
                                                                                                "var": {
                                                                                                  "description": "Specifies a variable to check.",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ]
                                                                                                },
                                                                                                "operator": {
                                                                                                  "description": "Specifies an operator.",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ],
                                                                                                  "enum": [
                                                                                                    "=",
                                                                                                    "!=",
                                                                                                    "<=",
                                                                                                    ">=",
                                                                                                    ">",
                                                                                                    "<",
                                                                                                    "in",
                                                                                                    "not_in",
                                                                                                    "~",
                                                                                                    "~*",
                                                                                                    "!~",
                                                                                                    "!~*",
                                                                                                    "ip_range",
                                                                                                    "!ip_range",
                                                                                                    "dn_mask",
                                                                                                    "!dn_mask"
                                                                                                  ]
                                                                                                },
                                                                                                "val": {
                                                                                                  "description": "Specifies a value to check.",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ]
                                                                                                }
                                                                                              },
                                                                                              "required": [
                                                                                                "var",
                                                                                                "operator",
                                                                                                "val"
                                                                                              ]
                                                                                            }
                                                                                          },
                                                                                          "trace_config": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "enableAllActions": {
                                                                                                "description": "enable tracing of all actions in chains",
                                                                                                "type": "boolean"
                                                                                              },
                                                                                              "enableAllChains": {
                                                                                                "description": "enable tracing of all actions in child chains",
                                                                                                "type": "boolean"
                                                                                              },
                                                                                              "mode": {
                                                                                                "description": "Enable or disable tracing at this level.",
                                                                                                "type": "object",
                                                                                                "additionalProperties": false,
                                                                                                "properties": {
                                                                                                  "enabled": {
                                                                                                    "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                    "type": [
                                                                                                      "number",
                                                                                                      "string"
                                                                                                    ],
                                                                                                    "enum": [
                                                                                                      "on",
                                                                                                      "off",
                                                                                                      "var_based"
                                                                                                    ]
                                                                                                  },
                                                                                                  "var": {
                                                                                                    "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                    "type": [
                                                                                                      "number",
                                                                                                      "string"
                                                                                                    ]
                                                                                                  }
                                                                                                }
                                                                                              },
                                                                                              "spanAttributes": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "name": {
                                                                                                      "description": "name of attribute",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "value": {
                                                                                                      "description": "value of attribute, can contain variables",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    }
                                                                                                  }
                                                                                                }
                                                                                              },
                                                                                              "spanName": {
                                                                                                "description": "Specify name of span",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "enableSocketsTracing": {
                                                                                                "description": "Enable or disable socket tracing, by default enabled",
                                                                                                "type": "boolean"
                                                                                              }
                                                                                            }
                                                                                          },
                                                                                          "params": {
                                                                                            "description": "Specifies extra parameters for the actions.",
                                                                                            "type": "object",
                                                                                            "additionalProperties": true
                                                                                          },
                                                                                          "requiredChildOneOf": {
                                                                                            "description": "Specifies unverifed action check",
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "decision": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ],
                                                                                                "enum": [
                                                                                                  "BLOCK",
                                                                                                  "WARN"
                                                                                                ]
                                                                                              },
                                                                                              "onlyCheckers": {
                                                                                                "type": "boolean"
                                                                                              },
                                                                                              "include": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ]
                                                                                                }
                                                                                              },
                                                                                              "exclude": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "string"
                                                                                                }
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "decision"
                                                                                            ],
                                                                                            "allOf": [
                                                                                              {
                                                                                                "if": {
                                                                                                  "type": "object",
                                                                                                  "required": [
                                                                                                    "exclude"
                                                                                                  ],
                                                                                                  "properties": {
                                                                                                    "exclude": {}
                                                                                                  }
                                                                                                },
                                                                                                "then": {
                                                                                                  "not": {
                                                                                                    "required": [
                                                                                                      "include"
                                                                                                    ]
                                                                                                  }
                                                                                                }
                                                                                              },
                                                                                              {
                                                                                                "if": {
                                                                                                  "type": "object",
                                                                                                  "required": [
                                                                                                    "include"
                                                                                                  ],
                                                                                                  "properties": {
                                                                                                    "include": {}
                                                                                                  }
                                                                                                },
                                                                                                "then": {
                                                                                                  "not": {
                                                                                                    "required": [
                                                                                                      "exclude"
                                                                                                    ]
                                                                                                  }
                                                                                                }
                                                                                              }
                                                                                            ]
                                                                                          },
                                                                                          "actions": {
                                                                                            "description": "Specifies a list of actions.",
                                                                                            "type": "array",
                                                                                            "items": {
                                                                                              "type": "object",
                                                                                              "additionalProperties": false,
                                                                                              "properties": {
                                                                                                "action": {
                                                                                                  "description": "Specifies an action to perform",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ],
                                                                                                  "enum": [
                                                                                                    "ASN1ContentExtractor",
                                                                                                    "Base64Decode",
                                                                                                    "ConditionChecker",
                                                                                                    "CheckDataSize",
                                                                                                    "CheckMimeType",
                                                                                                    "JsonPathExtract",
                                                                                                    "JsonPathExtractToVars",
                                                                                                    "JsonValidation",
                                                                                                    "XsdValidation",
                                                                                                    "PostFormDataToFlateJson",
                                                                                                    "MultipartExtract",
                                                                                                    "SetMessageFromVar",
                                                                                                    "SetVarFromMessage",
                                                                                                    "JwsToJson",
                                                                                                    "XPathExtract",
                                                                                                    "XPathExtractToVars",
                                                                                                    "SharedMapDeleter",
                                                                                                    "SharedMapRemover",
                                                                                                    "SharedMapSetter",
                                                                                                    "SharedMapGetter",
                                                                                                    "RandomNumberToVar",
                                                                                                    "VarsToSharedMap",
                                                                                                    "SharedMapToVars",
                                                                                                    "AntivirusFileChecker",
                                                                                                    "MtomExtractor",
                                                                                                    "JsonTransformer",
                                                                                                    "SetVar",
                                                                                                    "GraphQLRequestValidation",
                                                                                                    "ProtobufValidation",
                                                                                                    "OpenApiValidation",
                                                                                                    "DelimiterSplitter",
                                                                                                    "VarsToFile",
                                                                                                    "FileToVars",
                                                                                                    "WsdlValidation",
                                                                                                    "HttpFilter",
                                                                                                    "ProtobufToJson",
                                                                                                    "FilterMds",
                                                                                                    "OcspSignValidator",
                                                                                                    "OcspToJson",
                                                                                                    "ASN1ToJson",
                                                                                                    "XmlTransformer",
                                                                                                    "UrlEncode",
                                                                                                    "UrlDecodeUni",
                                                                                                    "UrlDecode",
                                                                                                    "HexDecode",
                                                                                                    "HexEncode",
                                                                                                    "ToLowerCase",
                                                                                                    "ToUpperCase",
                                                                                                    "Utf8ToUnicode",
                                                                                                    "Trim",
                                                                                                    "ICAPFileChecker",
                                                                                                    "MessageToFile",
                                                                                                    "MultipartFormGenerateFromVar",
                                                                                                    "HttpSender",
                                                                                                    "MessageAccumulator",
                                                                                                    "MessageFromAccumulator",
                                                                                                    "MessageFromPattern",
                                                                                                    "MultipartFormGenerateFromMessage",
                                                                                                    "JsonPatchMessage",
                                                                                                    "JsonPatchVar",
                                                                                                    "DigestFromMessage",
                                                                                                    "Base64Encode",
                                                                                                    "HMac",
                                                                                                    "FileToMessage",
                                                                                                    "JwtVerifier",
                                                                                                    "CharsetChecker",
                                                                                                    "LdapSearch",
                                                                                                    "UnicodeDecode",
                                                                                                    "MessageMapper",
                                                                                                    "SimpleRateLimiter",
                                                                                                    "EventSourceConverter",
                                                                                                    "LazySessionTimeChecker",
                                                                                                    "CalculateMessageProperties"
                                                                                                  ]
                                                                                                },
                                                                                                "id": {
                                                                                                  "description": "An identificator of action",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ]
                                                                                                },
                                                                                                "conditions": {
                                                                                                  "description": "Specifies the conditions for performina an action.",
                                                                                                  "type": "array",
                                                                                                  "items": {
                                                                                                    "type": "object",
                                                                                                    "additionalProperties": false,
                                                                                                    "properties": {
                                                                                                      "var": {
                                                                                                        "description": "Specifies a variable to check.",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ]
                                                                                                      },
                                                                                                      "operator": {
                                                                                                        "description": "Specifies an operator.",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ],
                                                                                                        "enum": [
                                                                                                          "=",
                                                                                                          "!=",
                                                                                                          "<=",
                                                                                                          ">=",
                                                                                                          ">",
                                                                                                          "<",
                                                                                                          "in",
                                                                                                          "not_in",
                                                                                                          "~",
                                                                                                          "~*",
                                                                                                          "!~",
                                                                                                          "!~*",
                                                                                                          "ip_range",
                                                                                                          "!ip_range",
                                                                                                          "dn_mask",
                                                                                                          "!dn_mask"
                                                                                                        ]
                                                                                                      },
                                                                                                      "val": {
                                                                                                        "description": "Specifies a value to check.",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ]
                                                                                                      }
                                                                                                    },
                                                                                                    "required": [
                                                                                                      "var",
                                                                                                      "operator",
                                                                                                      "val"
                                                                                                    ]
                                                                                                  }
                                                                                                },
                                                                                                "trace_config": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "enableAllActions": {
                                                                                                      "description": "enable tracing of all actions in chains",
                                                                                                      "type": "boolean"
                                                                                                    },
                                                                                                    "enableAllChains": {
                                                                                                      "description": "enable tracing of all actions in child chains",
                                                                                                      "type": "boolean"
                                                                                                    },
                                                                                                    "mode": {
                                                                                                      "description": "Enable or disable tracing at this level.",
                                                                                                      "type": "object",
                                                                                                      "additionalProperties": false,
                                                                                                      "properties": {
                                                                                                        "enabled": {
                                                                                                          "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                          "type": [
                                                                                                            "number",
                                                                                                            "string"
                                                                                                          ],
                                                                                                          "enum": [
                                                                                                            "on",
                                                                                                            "off",
                                                                                                            "var_based"
                                                                                                          ]
                                                                                                        },
                                                                                                        "var": {
                                                                                                          "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                          "type": [
                                                                                                            "number",
                                                                                                            "string"
                                                                                                          ]
                                                                                                        }
                                                                                                      }
                                                                                                    },
                                                                                                    "spanAttributes": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "name": {
                                                                                                            "description": "name of attribute",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "value": {
                                                                                                            "description": "value of attribute, can contain variables",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          }
                                                                                                        }
                                                                                                      }
                                                                                                    },
                                                                                                    "spanName": {
                                                                                                      "description": "Specify name of span",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "enableSocketsTracing": {
                                                                                                      "description": "Enable or disable socket tracing, by default enabled",
                                                                                                      "type": "boolean"
                                                                                                    }
                                                                                                  }
                                                                                                },
                                                                                                "params": {
                                                                                                  "description": "Specifies extra parameters for the actions.",
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": true
                                                                                                },
                                                                                                "requiredChildOneOf": {
                                                                                                  "description": "Specifies unverifed action check",
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "decision": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ],
                                                                                                      "enum": [
                                                                                                        "BLOCK",
                                                                                                        "WARN"
                                                                                                      ]
                                                                                                    },
                                                                                                    "onlyCheckers": {
                                                                                                      "type": "boolean"
                                                                                                    },
                                                                                                    "include": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ]
                                                                                                      }
                                                                                                    },
                                                                                                    "exclude": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "string"
                                                                                                      }
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "decision"
                                                                                                  ],
                                                                                                  "allOf": [
                                                                                                    {
                                                                                                      "if": {
                                                                                                        "type": "object",
                                                                                                        "required": [
                                                                                                          "exclude"
                                                                                                        ],
                                                                                                        "properties": {
                                                                                                          "exclude": {}
                                                                                                        }
                                                                                                      },
                                                                                                      "then": {
                                                                                                        "not": {
                                                                                                          "required": [
                                                                                                            "include"
                                                                                                          ]
                                                                                                        }
                                                                                                      }
                                                                                                    },
                                                                                                    {
                                                                                                      "if": {
                                                                                                        "type": "object",
                                                                                                        "required": [
                                                                                                          "include"
                                                                                                        ],
                                                                                                        "properties": {
                                                                                                          "include": {}
                                                                                                        }
                                                                                                      },
                                                                                                      "then": {
                                                                                                        "not": {
                                                                                                          "required": [
                                                                                                            "exclude"
                                                                                                          ]
                                                                                                        }
                                                                                                      }
                                                                                                    }
                                                                                                  ]
                                                                                                },
                                                                                                "actions": {
                                                                                                  "description": "Specifies a list of actions.",
                                                                                                  "type": "array",
                                                                                                  "items": {
                                                                                                    "type": "object",
                                                                                                    "additionalProperties": false,
                                                                                                    "properties": {
                                                                                                      "action": {
                                                                                                        "description": "Specifies an action to perform",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ],
                                                                                                        "enum": [
                                                                                                          "ASN1ContentExtractor",
                                                                                                          "Base64Decode",
                                                                                                          "ConditionChecker",
                                                                                                          "CheckDataSize",
                                                                                                          "CheckMimeType",
                                                                                                          "JsonPathExtract",
                                                                                                          "JsonPathExtractToVars",
                                                                                                          "JsonValidation",
                                                                                                          "XsdValidation",
                                                                                                          "PostFormDataToFlateJson",
                                                                                                          "MultipartExtract",
                                                                                                          "SetMessageFromVar",
                                                                                                          "SetVarFromMessage",
                                                                                                          "JwsToJson",
                                                                                                          "XPathExtract",
                                                                                                          "XPathExtractToVars",
                                                                                                          "SharedMapDeleter",
                                                                                                          "SharedMapRemover",
                                                                                                          "SharedMapSetter",
                                                                                                          "SharedMapGetter",
                                                                                                          "RandomNumberToVar",
                                                                                                          "VarsToSharedMap",
                                                                                                          "SharedMapToVars",
                                                                                                          "AntivirusFileChecker",
                                                                                                          "MtomExtractor",
                                                                                                          "JsonTransformer",
                                                                                                          "SetVar",
                                                                                                          "GraphQLRequestValidation",
                                                                                                          "ProtobufValidation",
                                                                                                          "OpenApiValidation",
                                                                                                          "DelimiterSplitter",
                                                                                                          "VarsToFile",
                                                                                                          "FileToVars",
                                                                                                          "WsdlValidation",
                                                                                                          "HttpFilter",
                                                                                                          "ProtobufToJson",
                                                                                                          "FilterMds",
                                                                                                          "OcspSignValidator",
                                                                                                          "OcspToJson",
                                                                                                          "ASN1ToJson",
                                                                                                          "XmlTransformer",
                                                                                                          "UrlEncode",
                                                                                                          "UrlDecodeUni",
                                                                                                          "UrlDecode",
                                                                                                          "HexDecode",
                                                                                                          "HexEncode",
                                                                                                          "ToLowerCase",
                                                                                                          "ToUpperCase",
                                                                                                          "Utf8ToUnicode",
                                                                                                          "Trim",
                                                                                                          "ICAPFileChecker",
                                                                                                          "MessageToFile",
                                                                                                          "MultipartFormGenerateFromVar",
                                                                                                          "HttpSender",
                                                                                                          "MessageAccumulator",
                                                                                                          "MessageFromAccumulator",
                                                                                                          "MessageFromPattern",
                                                                                                          "MultipartFormGenerateFromMessage",
                                                                                                          "JsonPatchMessage",
                                                                                                          "JsonPatchVar",
                                                                                                          "DigestFromMessage",
                                                                                                          "Base64Encode",
                                                                                                          "HMac",
                                                                                                          "FileToMessage",
                                                                                                          "JwtVerifier",
                                                                                                          "CharsetChecker",
                                                                                                          "LdapSearch",
                                                                                                          "UnicodeDecode",
                                                                                                          "MessageMapper",
                                                                                                          "SimpleRateLimiter",
                                                                                                          "EventSourceConverter",
                                                                                                          "LazySessionTimeChecker",
                                                                                                          "CalculateMessageProperties"
                                                                                                        ]
                                                                                                      },
                                                                                                      "id": {
                                                                                                        "description": "An identificator of action",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ]
                                                                                                      },
                                                                                                      "conditions": {
                                                                                                        "description": "Specifies the conditions for performina an action.",
                                                                                                        "type": "array",
                                                                                                        "items": {
                                                                                                          "type": "object",
                                                                                                          "additionalProperties": false,
                                                                                                          "properties": {
                                                                                                            "var": {
                                                                                                              "description": "Specifies a variable to check.",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ]
                                                                                                            },
                                                                                                            "operator": {
                                                                                                              "description": "Specifies an operator.",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ],
                                                                                                              "enum": [
                                                                                                                "=",
                                                                                                                "!=",
                                                                                                                "<=",
                                                                                                                ">=",
                                                                                                                ">",
                                                                                                                "<",
                                                                                                                "in",
                                                                                                                "not_in",
                                                                                                                "~",
                                                                                                                "~*",
                                                                                                                "!~",
                                                                                                                "!~*",
                                                                                                                "ip_range",
                                                                                                                "!ip_range",
                                                                                                                "dn_mask",
                                                                                                                "!dn_mask"
                                                                                                              ]
                                                                                                            },
                                                                                                            "val": {
                                                                                                              "description": "Specifies a value to check.",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ]
                                                                                                            }
                                                                                                          },
                                                                                                          "required": [
                                                                                                            "var",
                                                                                                            "operator",
                                                                                                            "val"
                                                                                                          ]
                                                                                                        }
                                                                                                      },
                                                                                                      "trace_config": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "enableAllActions": {
                                                                                                            "description": "enable tracing of all actions in chains",
                                                                                                            "type": "boolean"
                                                                                                          },
                                                                                                          "enableAllChains": {
                                                                                                            "description": "enable tracing of all actions in child chains",
                                                                                                            "type": "boolean"
                                                                                                          },
                                                                                                          "mode": {
                                                                                                            "description": "Enable or disable tracing at this level.",
                                                                                                            "type": "object",
                                                                                                            "additionalProperties": false,
                                                                                                            "properties": {
                                                                                                              "enabled": {
                                                                                                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                "type": [
                                                                                                                  "number",
                                                                                                                  "string"
                                                                                                                ],
                                                                                                                "enum": [
                                                                                                                  "on",
                                                                                                                  "off",
                                                                                                                  "var_based"
                                                                                                                ]
                                                                                                              },
                                                                                                              "var": {
                                                                                                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                "type": [
                                                                                                                  "number",
                                                                                                                  "string"
                                                                                                                ]
                                                                                                              }
                                                                                                            }
                                                                                                          },
                                                                                                          "spanAttributes": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "name": {
                                                                                                                  "description": "name of attribute",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "value": {
                                                                                                                  "description": "value of attribute, can contain variables",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                }
                                                                                                              }
                                                                                                            }
                                                                                                          },
                                                                                                          "spanName": {
                                                                                                            "description": "Specify name of span",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "enableSocketsTracing": {
                                                                                                            "description": "Enable or disable socket tracing, by default enabled",
                                                                                                            "type": "boolean"
                                                                                                          }
                                                                                                        }
                                                                                                      },
                                                                                                      "params": {
                                                                                                        "description": "Specifies extra parameters for the actions.",
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": true
                                                                                                      },
                                                                                                      "requiredChildOneOf": {
                                                                                                        "description": "Specifies unverifed action check",
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "decision": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ],
                                                                                                            "enum": [
                                                                                                              "BLOCK",
                                                                                                              "WARN"
                                                                                                            ]
                                                                                                          },
                                                                                                          "onlyCheckers": {
                                                                                                            "type": "boolean"
                                                                                                          },
                                                                                                          "include": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ]
                                                                                                            }
                                                                                                          },
                                                                                                          "exclude": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "string"
                                                                                                            }
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "decision"
                                                                                                        ],
                                                                                                        "allOf": [
                                                                                                          {
                                                                                                            "if": {
                                                                                                              "type": "object",
                                                                                                              "required": [
                                                                                                                "exclude"
                                                                                                              ],
                                                                                                              "properties": {
                                                                                                                "exclude": {}
                                                                                                              }
                                                                                                            },
                                                                                                            "then": {
                                                                                                              "not": {
                                                                                                                "required": [
                                                                                                                  "include"
                                                                                                                ]
                                                                                                              }
                                                                                                            }
                                                                                                          },
                                                                                                          {
                                                                                                            "if": {
                                                                                                              "type": "object",
                                                                                                              "required": [
                                                                                                                "include"
                                                                                                              ],
                                                                                                              "properties": {
                                                                                                                "include": {}
                                                                                                              }
                                                                                                            },
                                                                                                            "then": {
                                                                                                              "not": {
                                                                                                                "required": [
                                                                                                                  "exclude"
                                                                                                                ]
                                                                                                              }
                                                                                                            }
                                                                                                          }
                                                                                                        ]
                                                                                                      },
                                                                                                      "actions": {
                                                                                                        "description": "Specifies a list of actions.",
                                                                                                        "type": "array",
                                                                                                        "items": {
                                                                                                          "type": "object",
                                                                                                          "additionalProperties": false,
                                                                                                          "properties": {
                                                                                                            "action": {
                                                                                                              "description": "Specifies an action to perform",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ],
                                                                                                              "enum": [
                                                                                                                "ASN1ContentExtractor",
                                                                                                                "Base64Decode",
                                                                                                                "ConditionChecker",
                                                                                                                "CheckDataSize",
                                                                                                                "CheckMimeType",
                                                                                                                "JsonPathExtract",
                                                                                                                "JsonPathExtractToVars",
                                                                                                                "JsonValidation",
                                                                                                                "XsdValidation",
                                                                                                                "PostFormDataToFlateJson",
                                                                                                                "MultipartExtract",
                                                                                                                "SetMessageFromVar",
                                                                                                                "SetVarFromMessage",
                                                                                                                "JwsToJson",
                                                                                                                "XPathExtract",
                                                                                                                "XPathExtractToVars",
                                                                                                                "SharedMapDeleter",
                                                                                                                "SharedMapRemover",
                                                                                                                "SharedMapSetter",
                                                                                                                "SharedMapGetter",
                                                                                                                "RandomNumberToVar",
                                                                                                                "VarsToSharedMap",
                                                                                                                "SharedMapToVars",
                                                                                                                "AntivirusFileChecker",
                                                                                                                "MtomExtractor",
                                                                                                                "JsonTransformer",
                                                                                                                "SetVar",
                                                                                                                "GraphQLRequestValidation",
                                                                                                                "ProtobufValidation",
                                                                                                                "OpenApiValidation",
                                                                                                                "DelimiterSplitter",
                                                                                                                "VarsToFile",
                                                                                                                "FileToVars",
                                                                                                                "WsdlValidation",
                                                                                                                "HttpFilter",
                                                                                                                "ProtobufToJson",
                                                                                                                "FilterMds",
                                                                                                                "OcspSignValidator",
                                                                                                                "OcspToJson",
                                                                                                                "ASN1ToJson",
                                                                                                                "XmlTransformer",
                                                                                                                "UrlEncode",
                                                                                                                "UrlDecodeUni",
                                                                                                                "UrlDecode",
                                                                                                                "HexDecode",
                                                                                                                "HexEncode",
                                                                                                                "ToLowerCase",
                                                                                                                "ToUpperCase",
                                                                                                                "Utf8ToUnicode",
                                                                                                                "Trim",
                                                                                                                "ICAPFileChecker",
                                                                                                                "MessageToFile",
                                                                                                                "MultipartFormGenerateFromVar",
                                                                                                                "HttpSender",
                                                                                                                "MessageAccumulator",
                                                                                                                "MessageFromAccumulator",
                                                                                                                "MessageFromPattern",
                                                                                                                "MultipartFormGenerateFromMessage",
                                                                                                                "JsonPatchMessage",
                                                                                                                "JsonPatchVar",
                                                                                                                "DigestFromMessage",
                                                                                                                "Base64Encode",
                                                                                                                "HMac",
                                                                                                                "FileToMessage",
                                                                                                                "JwtVerifier",
                                                                                                                "CharsetChecker",
                                                                                                                "LdapSearch",
                                                                                                                "UnicodeDecode",
                                                                                                                "MessageMapper",
                                                                                                                "SimpleRateLimiter",
                                                                                                                "EventSourceConverter",
                                                                                                                "LazySessionTimeChecker",
                                                                                                                "CalculateMessageProperties"
                                                                                                              ]
                                                                                                            },
                                                                                                            "id": {
                                                                                                              "description": "An identificator of action",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ]
                                                                                                            },
                                                                                                            "conditions": {
                                                                                                              "description": "Specifies the conditions for performina an action.",
                                                                                                              "type": "array",
                                                                                                              "items": {
                                                                                                                "type": "object",
                                                                                                                "additionalProperties": false,
                                                                                                                "properties": {
                                                                                                                  "var": {
                                                                                                                    "description": "Specifies a variable to check.",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "operator": {
                                                                                                                    "description": "Specifies an operator.",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ],
                                                                                                                    "enum": [
                                                                                                                      "=",
                                                                                                                      "!=",
                                                                                                                      "<=",
                                                                                                                      ">=",
                                                                                                                      ">",
                                                                                                                      "<",
                                                                                                                      "in",
                                                                                                                      "not_in",
                                                                                                                      "~",
                                                                                                                      "~*",
                                                                                                                      "!~",
                                                                                                                      "!~*",
                                                                                                                      "ip_range",
                                                                                                                      "!ip_range",
                                                                                                                      "dn_mask",
                                                                                                                      "!dn_mask"
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "val": {
                                                                                                                    "description": "Specifies a value to check.",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                },
                                                                                                                "required": [
                                                                                                                  "var",
                                                                                                                  "operator",
                                                                                                                  "val"
                                                                                                                ]
                                                                                                              }
                                                                                                            },
                                                                                                            "trace_config": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "enableAllActions": {
                                                                                                                  "description": "enable tracing of all actions in chains",
                                                                                                                  "type": "boolean"
                                                                                                                },
                                                                                                                "enableAllChains": {
                                                                                                                  "description": "enable tracing of all actions in child chains",
                                                                                                                  "type": "boolean"
                                                                                                                },
                                                                                                                "mode": {
                                                                                                                  "description": "Enable or disable tracing at this level.",
                                                                                                                  "type": "object",
                                                                                                                  "additionalProperties": false,
                                                                                                                  "properties": {
                                                                                                                    "enabled": {
                                                                                                                      "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                      "type": [
                                                                                                                        "number",
                                                                                                                        "string"
                                                                                                                      ],
                                                                                                                      "enum": [
                                                                                                                        "on",
                                                                                                                        "off",
                                                                                                                        "var_based"
                                                                                                                      ]
                                                                                                                    },
                                                                                                                    "var": {
                                                                                                                      "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                      "type": [
                                                                                                                        "number",
                                                                                                                        "string"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  }
                                                                                                                },
                                                                                                                "spanAttributes": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "name": {
                                                                                                                        "description": "name of attribute",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "value": {
                                                                                                                        "description": "value of attribute, can contain variables",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      }
                                                                                                                    }
                                                                                                                  }
                                                                                                                },
                                                                                                                "spanName": {
                                                                                                                  "description": "Specify name of span",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "enableSocketsTracing": {
                                                                                                                  "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                  "type": "boolean"
                                                                                                                }
                                                                                                              }
                                                                                                            },
                                                                                                            "params": {
                                                                                                              "description": "Specifies extra parameters for the actions.",
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": true
                                                                                                            },
                                                                                                            "requiredChildOneOf": {
                                                                                                              "description": "Specifies unverifed action check",
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "decision": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ],
                                                                                                                  "enum": [
                                                                                                                    "BLOCK",
                                                                                                                    "WARN"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "onlyCheckers": {
                                                                                                                  "type": "boolean"
                                                                                                                },
                                                                                                                "include": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                },
                                                                                                                "exclude": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "string"
                                                                                                                  }
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "decision"
                                                                                                              ],
                                                                                                              "allOf": [
                                                                                                                {
                                                                                                                  "if": {
                                                                                                                    "type": "object",
                                                                                                                    "required": [
                                                                                                                      "exclude"
                                                                                                                    ],
                                                                                                                    "properties": {
                                                                                                                      "exclude": {}
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "then": {
                                                                                                                    "not": {
                                                                                                                      "required": [
                                                                                                                        "include"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  }
                                                                                                                },
                                                                                                                {
                                                                                                                  "if": {
                                                                                                                    "type": "object",
                                                                                                                    "required": [
                                                                                                                      "include"
                                                                                                                    ],
                                                                                                                    "properties": {
                                                                                                                      "include": {}
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "then": {
                                                                                                                    "not": {
                                                                                                                      "required": [
                                                                                                                        "exclude"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  }
                                                                                                                }
                                                                                                              ]
                                                                                                            },
                                                                                                            "actions": {
                                                                                                              "description": "Specifies a list of actions.",
                                                                                                              "type": "array",
                                                                                                              "items": {
                                                                                                                "type": "object",
                                                                                                                "additionalProperties": false,
                                                                                                                "properties": {
                                                                                                                  "action": {
                                                                                                                    "description": "Specifies an action to perform",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ],
                                                                                                                    "enum": [
                                                                                                                      "ASN1ContentExtractor",
                                                                                                                      "Base64Decode",
                                                                                                                      "ConditionChecker",
                                                                                                                      "CheckDataSize",
                                                                                                                      "CheckMimeType",
                                                                                                                      "JsonPathExtract",
                                                                                                                      "JsonPathExtractToVars",
                                                                                                                      "JsonValidation",
                                                                                                                      "XsdValidation",
                                                                                                                      "PostFormDataToFlateJson",
                                                                                                                      "MultipartExtract",
                                                                                                                      "SetMessageFromVar",
                                                                                                                      "SetVarFromMessage",
                                                                                                                      "JwsToJson",
                                                                                                                      "XPathExtract",
                                                                                                                      "XPathExtractToVars",
                                                                                                                      "SharedMapDeleter",
                                                                                                                      "SharedMapRemover",
                                                                                                                      "SharedMapSetter",
                                                                                                                      "SharedMapGetter",
                                                                                                                      "RandomNumberToVar",
                                                                                                                      "VarsToSharedMap",
                                                                                                                      "SharedMapToVars",
                                                                                                                      "AntivirusFileChecker",
                                                                                                                      "MtomExtractor",
                                                                                                                      "JsonTransformer",
                                                                                                                      "SetVar",
                                                                                                                      "GraphQLRequestValidation",
                                                                                                                      "ProtobufValidation",
                                                                                                                      "OpenApiValidation",
                                                                                                                      "DelimiterSplitter",
                                                                                                                      "VarsToFile",
                                                                                                                      "FileToVars",
                                                                                                                      "WsdlValidation",
                                                                                                                      "HttpFilter",
                                                                                                                      "ProtobufToJson",
                                                                                                                      "FilterMds",
                                                                                                                      "OcspSignValidator",
                                                                                                                      "OcspToJson",
                                                                                                                      "ASN1ToJson",
                                                                                                                      "XmlTransformer",
                                                                                                                      "UrlEncode",
                                                                                                                      "UrlDecodeUni",
                                                                                                                      "UrlDecode",
                                                                                                                      "HexDecode",
                                                                                                                      "HexEncode",
                                                                                                                      "ToLowerCase",
                                                                                                                      "ToUpperCase",
                                                                                                                      "Utf8ToUnicode",
                                                                                                                      "Trim",
                                                                                                                      "ICAPFileChecker",
                                                                                                                      "MessageToFile",
                                                                                                                      "MultipartFormGenerateFromVar",
                                                                                                                      "HttpSender",
                                                                                                                      "MessageAccumulator",
                                                                                                                      "MessageFromAccumulator",
                                                                                                                      "MessageFromPattern",
                                                                                                                      "MultipartFormGenerateFromMessage",
                                                                                                                      "JsonPatchMessage",
                                                                                                                      "JsonPatchVar",
                                                                                                                      "DigestFromMessage",
                                                                                                                      "Base64Encode",
                                                                                                                      "HMac",
                                                                                                                      "FileToMessage",
                                                                                                                      "JwtVerifier",
                                                                                                                      "CharsetChecker",
                                                                                                                      "LdapSearch",
                                                                                                                      "UnicodeDecode",
                                                                                                                      "MessageMapper",
                                                                                                                      "SimpleRateLimiter",
                                                                                                                      "EventSourceConverter",
                                                                                                                      "LazySessionTimeChecker",
                                                                                                                      "CalculateMessageProperties"
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "id": {
                                                                                                                    "description": "An identificator of action",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "conditions": {
                                                                                                                    "description": "Specifies the conditions for performina an action.",
                                                                                                                    "type": "array",
                                                                                                                    "items": {
                                                                                                                      "type": "object",
                                                                                                                      "additionalProperties": false,
                                                                                                                      "properties": {
                                                                                                                        "var": {
                                                                                                                          "description": "Specifies a variable to check.",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "operator": {
                                                                                                                          "description": "Specifies an operator.",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ],
                                                                                                                          "enum": [
                                                                                                                            "=",
                                                                                                                            "!=",
                                                                                                                            "<=",
                                                                                                                            ">=",
                                                                                                                            ">",
                                                                                                                            "<",
                                                                                                                            "in",
                                                                                                                            "not_in",
                                                                                                                            "~",
                                                                                                                            "~*",
                                                                                                                            "!~",
                                                                                                                            "!~*",
                                                                                                                            "ip_range",
                                                                                                                            "!ip_range",
                                                                                                                            "dn_mask",
                                                                                                                            "!dn_mask"
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "val": {
                                                                                                                          "description": "Specifies a value to check.",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "required": [
                                                                                                                        "var",
                                                                                                                        "operator",
                                                                                                                        "val"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "trace_config": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "enableAllActions": {
                                                                                                                        "description": "enable tracing of all actions in chains",
                                                                                                                        "type": "boolean"
                                                                                                                      },
                                                                                                                      "enableAllChains": {
                                                                                                                        "description": "enable tracing of all actions in child chains",
                                                                                                                        "type": "boolean"
                                                                                                                      },
                                                                                                                      "mode": {
                                                                                                                        "description": "Enable or disable tracing at this level.",
                                                                                                                        "type": "object",
                                                                                                                        "additionalProperties": false,
                                                                                                                        "properties": {
                                                                                                                          "enabled": {
                                                                                                                            "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                            "type": [
                                                                                                                              "number",
                                                                                                                              "string"
                                                                                                                            ],
                                                                                                                            "enum": [
                                                                                                                              "on",
                                                                                                                              "off",
                                                                                                                              "var_based"
                                                                                                                            ]
                                                                                                                          },
                                                                                                                          "var": {
                                                                                                                            "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                            "type": [
                                                                                                                              "number",
                                                                                                                              "string"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "spanAttributes": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "name": {
                                                                                                                              "description": "name of attribute",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "value": {
                                                                                                                              "description": "value of attribute, can contain variables",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            }
                                                                                                                          }
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "spanName": {
                                                                                                                        "description": "Specify name of span",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "enableSocketsTracing": {
                                                                                                                        "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                        "type": "boolean"
                                                                                                                      }
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "params": {
                                                                                                                    "description": "Specifies extra parameters for the actions.",
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": true
                                                                                                                  },
                                                                                                                  "requiredChildOneOf": {
                                                                                                                    "description": "Specifies unverifed action check",
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "decision": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ],
                                                                                                                        "enum": [
                                                                                                                          "BLOCK",
                                                                                                                          "WARN"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "onlyCheckers": {
                                                                                                                        "type": "boolean"
                                                                                                                      },
                                                                                                                      "include": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "exclude": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "string"
                                                                                                                        }
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "decision"
                                                                                                                    ],
                                                                                                                    "allOf": [
                                                                                                                      {
                                                                                                                        "if": {
                                                                                                                          "type": "object",
                                                                                                                          "required": [
                                                                                                                            "exclude"
                                                                                                                          ],
                                                                                                                          "properties": {
                                                                                                                            "exclude": {}
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "then": {
                                                                                                                          "not": {
                                                                                                                            "required": [
                                                                                                                              "include"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        }
                                                                                                                      },
                                                                                                                      {
                                                                                                                        "if": {
                                                                                                                          "type": "object",
                                                                                                                          "required": [
                                                                                                                            "include"
                                                                                                                          ],
                                                                                                                          "properties": {
                                                                                                                            "include": {}
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "then": {
                                                                                                                          "not": {
                                                                                                                            "required": [
                                                                                                                              "exclude"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        }
                                                                                                                      }
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "actions": {
                                                                                                                    "description": "Specifies a list of actions.",
                                                                                                                    "type": "array",
                                                                                                                    "items": {
                                                                                                                      "type": "object",
                                                                                                                      "additionalProperties": false,
                                                                                                                      "properties": {
                                                                                                                        "action": {
                                                                                                                          "description": "Specifies an action to perform",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ],
                                                                                                                          "enum": [
                                                                                                                            "ASN1ContentExtractor",
                                                                                                                            "Base64Decode",
                                                                                                                            "ConditionChecker",
                                                                                                                            "CheckDataSize",
                                                                                                                            "CheckMimeType",
                                                                                                                            "JsonPathExtract",
                                                                                                                            "JsonPathExtractToVars",
                                                                                                                            "JsonValidation",
                                                                                                                            "XsdValidation",
                                                                                                                            "PostFormDataToFlateJson",
                                                                                                                            "MultipartExtract",
                                                                                                                            "SetMessageFromVar",
                                                                                                                            "SetVarFromMessage",
                                                                                                                            "JwsToJson",
                                                                                                                            "XPathExtract",
                                                                                                                            "XPathExtractToVars",
                                                                                                                            "SharedMapDeleter",
                                                                                                                            "SharedMapRemover",
                                                                                                                            "SharedMapSetter",
                                                                                                                            "SharedMapGetter",
                                                                                                                            "RandomNumberToVar",
                                                                                                                            "VarsToSharedMap",
                                                                                                                            "SharedMapToVars",
                                                                                                                            "AntivirusFileChecker",
                                                                                                                            "MtomExtractor",
                                                                                                                            "JsonTransformer",
                                                                                                                            "SetVar",
                                                                                                                            "GraphQLRequestValidation",
                                                                                                                            "ProtobufValidation",
                                                                                                                            "OpenApiValidation",
                                                                                                                            "DelimiterSplitter",
                                                                                                                            "VarsToFile",
                                                                                                                            "FileToVars",
                                                                                                                            "WsdlValidation",
                                                                                                                            "HttpFilter",
                                                                                                                            "ProtobufToJson",
                                                                                                                            "FilterMds",
                                                                                                                            "OcspSignValidator",
                                                                                                                            "OcspToJson",
                                                                                                                            "ASN1ToJson",
                                                                                                                            "XmlTransformer",
                                                                                                                            "UrlEncode",
                                                                                                                            "UrlDecodeUni",
                                                                                                                            "UrlDecode",
                                                                                                                            "HexDecode",
                                                                                                                            "HexEncode",
                                                                                                                            "ToLowerCase",
                                                                                                                            "ToUpperCase",
                                                                                                                            "Utf8ToUnicode",
                                                                                                                            "Trim",
                                                                                                                            "ICAPFileChecker",
                                                                                                                            "MessageToFile",
                                                                                                                            "MultipartFormGenerateFromVar",
                                                                                                                            "HttpSender",
                                                                                                                            "MessageAccumulator",
                                                                                                                            "MessageFromAccumulator",
                                                                                                                            "MessageFromPattern",
                                                                                                                            "MultipartFormGenerateFromMessage",
                                                                                                                            "JsonPatchMessage",
                                                                                                                            "JsonPatchVar",
                                                                                                                            "DigestFromMessage",
                                                                                                                            "Base64Encode",
                                                                                                                            "HMac",
                                                                                                                            "FileToMessage",
                                                                                                                            "JwtVerifier",
                                                                                                                            "CharsetChecker",
                                                                                                                            "LdapSearch",
                                                                                                                            "UnicodeDecode",
                                                                                                                            "MessageMapper",
                                                                                                                            "SimpleRateLimiter",
                                                                                                                            "EventSourceConverter",
                                                                                                                            "LazySessionTimeChecker",
                                                                                                                            "CalculateMessageProperties"
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "id": {
                                                                                                                          "description": "An identificator of action",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "conditions": {
                                                                                                                          "description": "Specifies the conditions for performina an action.",
                                                                                                                          "type": "array",
                                                                                                                          "items": {
                                                                                                                            "type": "object",
                                                                                                                            "additionalProperties": false,
                                                                                                                            "properties": {
                                                                                                                              "var": {
                                                                                                                                "description": "Specifies a variable to check.",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "operator": {
                                                                                                                                "description": "Specifies an operator.",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ],
                                                                                                                                "enum": [
                                                                                                                                  "=",
                                                                                                                                  "!=",
                                                                                                                                  "<=",
                                                                                                                                  ">=",
                                                                                                                                  ">",
                                                                                                                                  "<",
                                                                                                                                  "in",
                                                                                                                                  "not_in",
                                                                                                                                  "~",
                                                                                                                                  "~*",
                                                                                                                                  "!~",
                                                                                                                                  "!~*",
                                                                                                                                  "ip_range",
                                                                                                                                  "!ip_range",
                                                                                                                                  "dn_mask",
                                                                                                                                  "!dn_mask"
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "val": {
                                                                                                                                "description": "Specifies a value to check.",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "required": [
                                                                                                                              "var",
                                                                                                                              "operator",
                                                                                                                              "val"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "trace_config": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "enableAllActions": {
                                                                                                                              "description": "enable tracing of all actions in chains",
                                                                                                                              "type": "boolean"
                                                                                                                            },
                                                                                                                            "enableAllChains": {
                                                                                                                              "description": "enable tracing of all actions in child chains",
                                                                                                                              "type": "boolean"
                                                                                                                            },
                                                                                                                            "mode": {
                                                                                                                              "description": "Enable or disable tracing at this level.",
                                                                                                                              "type": "object",
                                                                                                                              "additionalProperties": false,
                                                                                                                              "properties": {
                                                                                                                                "enabled": {
                                                                                                                                  "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                  "type": [
                                                                                                                                    "number",
                                                                                                                                    "string"
                                                                                                                                  ],
                                                                                                                                  "enum": [
                                                                                                                                    "on",
                                                                                                                                    "off",
                                                                                                                                    "var_based"
                                                                                                                                  ]
                                                                                                                                },
                                                                                                                                "var": {
                                                                                                                                  "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                  "type": [
                                                                                                                                    "number",
                                                                                                                                    "string"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "spanAttributes": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "name": {
                                                                                                                                    "description": "name of attribute",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "value": {
                                                                                                                                    "description": "value of attribute, can contain variables",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  }
                                                                                                                                }
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "spanName": {
                                                                                                                              "description": "Specify name of span",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "enableSocketsTracing": {
                                                                                                                              "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                              "type": "boolean"
                                                                                                                            }
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "params": {
                                                                                                                          "description": "Specifies extra parameters for the actions.",
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": true
                                                                                                                        },
                                                                                                                        "requiredChildOneOf": {
                                                                                                                          "description": "Specifies unverifed action check",
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "decision": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ],
                                                                                                                              "enum": [
                                                                                                                                "BLOCK",
                                                                                                                                "WARN"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "onlyCheckers": {
                                                                                                                              "type": "boolean"
                                                                                                                            },
                                                                                                                            "include": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "exclude": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "string"
                                                                                                                              }
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "decision"
                                                                                                                          ],
                                                                                                                          "allOf": [
                                                                                                                            {
                                                                                                                              "if": {
                                                                                                                                "type": "object",
                                                                                                                                "required": [
                                                                                                                                  "exclude"
                                                                                                                                ],
                                                                                                                                "properties": {
                                                                                                                                  "exclude": {}
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "then": {
                                                                                                                                "not": {
                                                                                                                                  "required": [
                                                                                                                                    "include"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              }
                                                                                                                            },
                                                                                                                            {
                                                                                                                              "if": {
                                                                                                                                "type": "object",
                                                                                                                                "required": [
                                                                                                                                  "include"
                                                                                                                                ],
                                                                                                                                "properties": {
                                                                                                                                  "include": {}
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "then": {
                                                                                                                                "not": {
                                                                                                                                  "required": [
                                                                                                                                    "exclude"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              }
                                                                                                                            }
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "actions": {
                                                                                                                          "description": "Specifies a list of actions.",
                                                                                                                          "type": "array",
                                                                                                                          "items": {
                                                                                                                            "type": "object",
                                                                                                                            "additionalProperties": false,
                                                                                                                            "properties": {
                                                                                                                              "action": {
                                                                                                                                "description": "Specifies an action to perform",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ],
                                                                                                                                "enum": [
                                                                                                                                  "ASN1ContentExtractor",
                                                                                                                                  "Base64Decode",
                                                                                                                                  "ConditionChecker",
                                                                                                                                  "CheckDataSize",
                                                                                                                                  "CheckMimeType",
                                                                                                                                  "JsonPathExtract",
                                                                                                                                  "JsonPathExtractToVars",
                                                                                                                                  "JsonValidation",
                                                                                                                                  "XsdValidation",
                                                                                                                                  "PostFormDataToFlateJson",
                                                                                                                                  "MultipartExtract",
                                                                                                                                  "SetMessageFromVar",
                                                                                                                                  "SetVarFromMessage",
                                                                                                                                  "JwsToJson",
                                                                                                                                  "XPathExtract",
                                                                                                                                  "XPathExtractToVars",
                                                                                                                                  "SharedMapDeleter",
                                                                                                                                  "SharedMapRemover",
                                                                                                                                  "SharedMapSetter",
                                                                                                                                  "SharedMapGetter",
                                                                                                                                  "RandomNumberToVar",
                                                                                                                                  "VarsToSharedMap",
                                                                                                                                  "SharedMapToVars",
                                                                                                                                  "AntivirusFileChecker",
                                                                                                                                  "MtomExtractor",
                                                                                                                                  "JsonTransformer",
                                                                                                                                  "SetVar",
                                                                                                                                  "GraphQLRequestValidation",
                                                                                                                                  "ProtobufValidation",
                                                                                                                                  "OpenApiValidation",
                                                                                                                                  "DelimiterSplitter",
                                                                                                                                  "VarsToFile",
                                                                                                                                  "FileToVars",
                                                                                                                                  "WsdlValidation",
                                                                                                                                  "HttpFilter",
                                                                                                                                  "ProtobufToJson",
                                                                                                                                  "FilterMds",
                                                                                                                                  "OcspSignValidator",
                                                                                                                                  "OcspToJson",
                                                                                                                                  "ASN1ToJson",
                                                                                                                                  "XmlTransformer",
                                                                                                                                  "UrlEncode",
                                                                                                                                  "UrlDecodeUni",
                                                                                                                                  "UrlDecode",
                                                                                                                                  "HexDecode",
                                                                                                                                  "HexEncode",
                                                                                                                                  "ToLowerCase",
                                                                                                                                  "ToUpperCase",
                                                                                                                                  "Utf8ToUnicode",
                                                                                                                                  "Trim",
                                                                                                                                  "ICAPFileChecker",
                                                                                                                                  "MessageToFile",
                                                                                                                                  "MultipartFormGenerateFromVar",
                                                                                                                                  "HttpSender",
                                                                                                                                  "MessageAccumulator",
                                                                                                                                  "MessageFromAccumulator",
                                                                                                                                  "MessageFromPattern",
                                                                                                                                  "MultipartFormGenerateFromMessage",
                                                                                                                                  "JsonPatchMessage",
                                                                                                                                  "JsonPatchVar",
                                                                                                                                  "DigestFromMessage",
                                                                                                                                  "Base64Encode",
                                                                                                                                  "HMac",
                                                                                                                                  "FileToMessage",
                                                                                                                                  "JwtVerifier",
                                                                                                                                  "CharsetChecker",
                                                                                                                                  "LdapSearch",
                                                                                                                                  "UnicodeDecode",
                                                                                                                                  "MessageMapper",
                                                                                                                                  "SimpleRateLimiter",
                                                                                                                                  "EventSourceConverter",
                                                                                                                                  "LazySessionTimeChecker",
                                                                                                                                  "CalculateMessageProperties"
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "id": {
                                                                                                                                "description": "An identificator of action",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "conditions": {
                                                                                                                                "description": "Specifies the conditions for performina an action.",
                                                                                                                                "type": "array",
                                                                                                                                "items": {
                                                                                                                                  "type": "object",
                                                                                                                                  "additionalProperties": false,
                                                                                                                                  "properties": {
                                                                                                                                    "var": {
                                                                                                                                      "description": "Specifies a variable to check.",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "operator": {
                                                                                                                                      "description": "Specifies an operator.",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ],
                                                                                                                                      "enum": [
                                                                                                                                        "=",
                                                                                                                                        "!=",
                                                                                                                                        "<=",
                                                                                                                                        ">=",
                                                                                                                                        ">",
                                                                                                                                        "<",
                                                                                                                                        "in",
                                                                                                                                        "not_in",
                                                                                                                                        "~",
                                                                                                                                        "~*",
                                                                                                                                        "!~",
                                                                                                                                        "!~*",
                                                                                                                                        "ip_range",
                                                                                                                                        "!ip_range",
                                                                                                                                        "dn_mask",
                                                                                                                                        "!dn_mask"
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "val": {
                                                                                                                                      "description": "Specifies a value to check.",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "required": [
                                                                                                                                    "var",
                                                                                                                                    "operator",
                                                                                                                                    "val"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "trace_config": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "enableAllActions": {
                                                                                                                                    "description": "enable tracing of all actions in chains",
                                                                                                                                    "type": "boolean"
                                                                                                                                  },
                                                                                                                                  "enableAllChains": {
                                                                                                                                    "description": "enable tracing of all actions in child chains",
                                                                                                                                    "type": "boolean"
                                                                                                                                  },
                                                                                                                                  "mode": {
                                                                                                                                    "description": "Enable or disable tracing at this level.",
                                                                                                                                    "type": "object",
                                                                                                                                    "additionalProperties": false,
                                                                                                                                    "properties": {
                                                                                                                                      "enabled": {
                                                                                                                                        "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                        "type": [
                                                                                                                                          "number",
                                                                                                                                          "string"
                                                                                                                                        ],
                                                                                                                                        "enum": [
                                                                                                                                          "on",
                                                                                                                                          "off",
                                                                                                                                          "var_based"
                                                                                                                                        ]
                                                                                                                                      },
                                                                                                                                      "var": {
                                                                                                                                        "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                        "type": [
                                                                                                                                          "number",
                                                                                                                                          "string"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "spanAttributes": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "name": {
                                                                                                                                          "description": "name of attribute",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "value": {
                                                                                                                                          "description": "value of attribute, can contain variables",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        }
                                                                                                                                      }
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "spanName": {
                                                                                                                                    "description": "Specify name of span",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "enableSocketsTracing": {
                                                                                                                                    "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                                    "type": "boolean"
                                                                                                                                  }
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "params": {
                                                                                                                                "description": "Specifies extra parameters for the actions.",
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": true
                                                                                                                              },
                                                                                                                              "requiredChildOneOf": {
                                                                                                                                "description": "Specifies unverifed action check",
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "decision": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ],
                                                                                                                                    "enum": [
                                                                                                                                      "BLOCK",
                                                                                                                                      "WARN"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "onlyCheckers": {
                                                                                                                                    "type": "boolean"
                                                                                                                                  },
                                                                                                                                  "include": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "exclude": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "string"
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "decision"
                                                                                                                                ],
                                                                                                                                "allOf": [
                                                                                                                                  {
                                                                                                                                    "if": {
                                                                                                                                      "type": "object",
                                                                                                                                      "required": [
                                                                                                                                        "exclude"
                                                                                                                                      ],
                                                                                                                                      "properties": {
                                                                                                                                        "exclude": {}
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "then": {
                                                                                                                                      "not": {
                                                                                                                                        "required": [
                                                                                                                                          "include"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  {
                                                                                                                                    "if": {
                                                                                                                                      "type": "object",
                                                                                                                                      "required": [
                                                                                                                                        "include"
                                                                                                                                      ],
                                                                                                                                      "properties": {
                                                                                                                                        "include": {}
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "then": {
                                                                                                                                      "not": {
                                                                                                                                        "required": [
                                                                                                                                          "exclude"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "actions": {
                                                                                                                                "description": "Specifies a list of actions.",
                                                                                                                                "type": "array",
                                                                                                                                "items": {
                                                                                                                                  "type": "object",
                                                                                                                                  "additionalProperties": false,
                                                                                                                                  "properties": {
                                                                                                                                    "action": {
                                                                                                                                      "description": "Specifies an action to perform",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ],
                                                                                                                                      "enum": [
                                                                                                                                        "ASN1ContentExtractor",
                                                                                                                                        "Base64Decode",
                                                                                                                                        "ConditionChecker",
                                                                                                                                        "CheckDataSize",
                                                                                                                                        "CheckMimeType",
                                                                                                                                        "JsonPathExtract",
                                                                                                                                        "JsonPathExtractToVars",
                                                                                                                                        "JsonValidation",
                                                                                                                                        "XsdValidation",
                                                                                                                                        "PostFormDataToFlateJson",
                                                                                                                                        "MultipartExtract",
                                                                                                                                        "SetMessageFromVar",
                                                                                                                                        "SetVarFromMessage",
                                                                                                                                        "JwsToJson",
                                                                                                                                        "XPathExtract",
                                                                                                                                        "XPathExtractToVars",
                                                                                                                                        "SharedMapDeleter",
                                                                                                                                        "SharedMapRemover",
                                                                                                                                        "SharedMapSetter",
                                                                                                                                        "SharedMapGetter",
                                                                                                                                        "RandomNumberToVar",
                                                                                                                                        "VarsToSharedMap",
                                                                                                                                        "SharedMapToVars",
                                                                                                                                        "AntivirusFileChecker",
                                                                                                                                        "MtomExtractor",
                                                                                                                                        "JsonTransformer",
                                                                                                                                        "SetVar",
                                                                                                                                        "GraphQLRequestValidation",
                                                                                                                                        "ProtobufValidation",
                                                                                                                                        "OpenApiValidation",
                                                                                                                                        "DelimiterSplitter",
                                                                                                                                        "VarsToFile",
                                                                                                                                        "FileToVars",
                                                                                                                                        "WsdlValidation",
                                                                                                                                        "HttpFilter",
                                                                                                                                        "ProtobufToJson",
                                                                                                                                        "FilterMds",
                                                                                                                                        "OcspSignValidator",
                                                                                                                                        "OcspToJson",
                                                                                                                                        "ASN1ToJson",
                                                                                                                                        "XmlTransformer",
                                                                                                                                        "UrlEncode",
                                                                                                                                        "UrlDecodeUni",
                                                                                                                                        "UrlDecode",
                                                                                                                                        "HexDecode",
                                                                                                                                        "HexEncode",
                                                                                                                                        "ToLowerCase",
                                                                                                                                        "ToUpperCase",
                                                                                                                                        "Utf8ToUnicode",
                                                                                                                                        "Trim",
                                                                                                                                        "ICAPFileChecker",
                                                                                                                                        "MessageToFile",
                                                                                                                                        "MultipartFormGenerateFromVar",
                                                                                                                                        "HttpSender",
                                                                                                                                        "MessageAccumulator",
                                                                                                                                        "MessageFromAccumulator",
                                                                                                                                        "MessageFromPattern",
                                                                                                                                        "MultipartFormGenerateFromMessage",
                                                                                                                                        "JsonPatchMessage",
                                                                                                                                        "JsonPatchVar",
                                                                                                                                        "DigestFromMessage",
                                                                                                                                        "Base64Encode",
                                                                                                                                        "HMac",
                                                                                                                                        "FileToMessage",
                                                                                                                                        "JwtVerifier",
                                                                                                                                        "CharsetChecker",
                                                                                                                                        "LdapSearch",
                                                                                                                                        "UnicodeDecode",
                                                                                                                                        "MessageMapper",
                                                                                                                                        "SimpleRateLimiter",
                                                                                                                                        "EventSourceConverter",
                                                                                                                                        "LazySessionTimeChecker",
                                                                                                                                        "CalculateMessageProperties"
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "id": {
                                                                                                                                      "description": "An identificator of action",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "conditions": {
                                                                                                                                      "description": "Specifies the conditions for performina an action.",
                                                                                                                                      "type": "array",
                                                                                                                                      "items": {
                                                                                                                                        "type": "object",
                                                                                                                                        "additionalProperties": false,
                                                                                                                                        "properties": {
                                                                                                                                          "var": {
                                                                                                                                            "description": "Specifies a variable to check.",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "operator": {
                                                                                                                                            "description": "Specifies an operator.",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ],
                                                                                                                                            "enum": [
                                                                                                                                              "=",
                                                                                                                                              "!=",
                                                                                                                                              "<=",
                                                                                                                                              ">=",
                                                                                                                                              ">",
                                                                                                                                              "<",
                                                                                                                                              "in",
                                                                                                                                              "not_in",
                                                                                                                                              "~",
                                                                                                                                              "~*",
                                                                                                                                              "!~",
                                                                                                                                              "!~*",
                                                                                                                                              "ip_range",
                                                                                                                                              "!ip_range",
                                                                                                                                              "dn_mask",
                                                                                                                                              "!dn_mask"
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "val": {
                                                                                                                                            "description": "Specifies a value to check.",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "required": [
                                                                                                                                          "var",
                                                                                                                                          "operator",
                                                                                                                                          "val"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "trace_config": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "enableAllActions": {
                                                                                                                                          "description": "enable tracing of all actions in chains",
                                                                                                                                          "type": "boolean"
                                                                                                                                        },
                                                                                                                                        "enableAllChains": {
                                                                                                                                          "description": "enable tracing of all actions in child chains",
                                                                                                                                          "type": "boolean"
                                                                                                                                        },
                                                                                                                                        "mode": {
                                                                                                                                          "description": "Enable or disable tracing at this level.",
                                                                                                                                          "type": "object",
                                                                                                                                          "additionalProperties": false,
                                                                                                                                          "properties": {
                                                                                                                                            "enabled": {
                                                                                                                                              "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                              "type": [
                                                                                                                                                "number",
                                                                                                                                                "string"
                                                                                                                                              ],
                                                                                                                                              "enum": [
                                                                                                                                                "on",
                                                                                                                                                "off",
                                                                                                                                                "var_based"
                                                                                                                                              ]
                                                                                                                                            },
                                                                                                                                            "var": {
                                                                                                                                              "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                              "type": [
                                                                                                                                                "number",
                                                                                                                                                "string"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "spanAttributes": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "name": {
                                                                                                                                                "description": "name of attribute",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "value": {
                                                                                                                                                "description": "value of attribute, can contain variables",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              }
                                                                                                                                            }
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "spanName": {
                                                                                                                                          "description": "Specify name of span",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "enableSocketsTracing": {
                                                                                                                                          "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                                          "type": "boolean"
                                                                                                                                        }
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "params": {
                                                                                                                                      "description": "Specifies extra parameters for the actions.",
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": true
                                                                                                                                    },
                                                                                                                                    "requiredChildOneOf": {
                                                                                                                                      "description": "Specifies unverifed action check",
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "decision": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ],
                                                                                                                                          "enum": [
                                                                                                                                            "BLOCK",
                                                                                                                                            "WARN"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "onlyCheckers": {
                                                                                                                                          "type": "boolean"
                                                                                                                                        },
                                                                                                                                        "include": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "exclude": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "string"
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "decision"
                                                                                                                                      ],
                                                                                                                                      "allOf": [
                                                                                                                                        {
                                                                                                                                          "if": {
                                                                                                                                            "type": "object",
                                                                                                                                            "required": [
                                                                                                                                              "exclude"
                                                                                                                                            ],
                                                                                                                                            "properties": {
                                                                                                                                              "exclude": {}
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "then": {
                                                                                                                                            "not": {
                                                                                                                                              "required": [
                                                                                                                                                "include"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                          "if": {
                                                                                                                                            "type": "object",
                                                                                                                                            "required": [
                                                                                                                                              "include"
                                                                                                                                            ],
                                                                                                                                            "properties": {
                                                                                                                                              "include": {}
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "then": {
                                                                                                                                            "not": {
                                                                                                                                              "required": [
                                                                                                                                                "exclude"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "actions": {
                                                                                                                                      "description": "Specifies a list of actions.",
                                                                                                                                      "type": "array",
                                                                                                                                      "items": {
                                                                                                                                        "type": "object",
                                                                                                                                        "additionalProperties": false,
                                                                                                                                        "properties": {
                                                                                                                                          "action": {
                                                                                                                                            "description": "Specifies an action to perform",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ],
                                                                                                                                            "enum": [
                                                                                                                                              "ASN1ContentExtractor",
                                                                                                                                              "Base64Decode",
                                                                                                                                              "ConditionChecker",
                                                                                                                                              "CheckDataSize",
                                                                                                                                              "CheckMimeType",
                                                                                                                                              "JsonPathExtract",
                                                                                                                                              "JsonPathExtractToVars",
                                                                                                                                              "JsonValidation",
                                                                                                                                              "XsdValidation",
                                                                                                                                              "PostFormDataToFlateJson",
                                                                                                                                              "MultipartExtract",
                                                                                                                                              "SetMessageFromVar",
                                                                                                                                              "SetVarFromMessage",
                                                                                                                                              "JwsToJson",
                                                                                                                                              "XPathExtract",
                                                                                                                                              "XPathExtractToVars",
                                                                                                                                              "SharedMapDeleter",
                                                                                                                                              "SharedMapRemover",
                                                                                                                                              "SharedMapSetter",
                                                                                                                                              "SharedMapGetter",
                                                                                                                                              "RandomNumberToVar",
                                                                                                                                              "VarsToSharedMap",
                                                                                                                                              "SharedMapToVars",
                                                                                                                                              "AntivirusFileChecker",
                                                                                                                                              "MtomExtractor",
                                                                                                                                              "JsonTransformer",
                                                                                                                                              "SetVar",
                                                                                                                                              "GraphQLRequestValidation",
                                                                                                                                              "ProtobufValidation",
                                                                                                                                              "OpenApiValidation",
                                                                                                                                              "DelimiterSplitter",
                                                                                                                                              "VarsToFile",
                                                                                                                                              "FileToVars",
                                                                                                                                              "WsdlValidation",
                                                                                                                                              "HttpFilter",
                                                                                                                                              "ProtobufToJson",
                                                                                                                                              "FilterMds",
                                                                                                                                              "OcspSignValidator",
                                                                                                                                              "OcspToJson",
                                                                                                                                              "ASN1ToJson",
                                                                                                                                              "XmlTransformer",
                                                                                                                                              "UrlEncode",
                                                                                                                                              "UrlDecodeUni",
                                                                                                                                              "UrlDecode",
                                                                                                                                              "HexDecode",
                                                                                                                                              "HexEncode",
                                                                                                                                              "ToLowerCase",
                                                                                                                                              "ToUpperCase",
                                                                                                                                              "Utf8ToUnicode",
                                                                                                                                              "Trim",
                                                                                                                                              "ICAPFileChecker",
                                                                                                                                              "MessageToFile",
                                                                                                                                              "MultipartFormGenerateFromVar",
                                                                                                                                              "HttpSender",
                                                                                                                                              "MessageAccumulator",
                                                                                                                                              "MessageFromAccumulator",
                                                                                                                                              "MessageFromPattern",
                                                                                                                                              "MultipartFormGenerateFromMessage",
                                                                                                                                              "JsonPatchMessage",
                                                                                                                                              "JsonPatchVar",
                                                                                                                                              "DigestFromMessage",
                                                                                                                                              "Base64Encode",
                                                                                                                                              "HMac",
                                                                                                                                              "FileToMessage",
                                                                                                                                              "JwtVerifier",
                                                                                                                                              "CharsetChecker",
                                                                                                                                              "LdapSearch",
                                                                                                                                              "UnicodeDecode",
                                                                                                                                              "MessageMapper",
                                                                                                                                              "SimpleRateLimiter",
                                                                                                                                              "EventSourceConverter",
                                                                                                                                              "LazySessionTimeChecker",
                                                                                                                                              "CalculateMessageProperties"
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "id": {
                                                                                                                                            "description": "An identificator of action",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "conditions": {
                                                                                                                                            "description": "Specifies the conditions for performina an action.",
                                                                                                                                            "type": "array",
                                                                                                                                            "items": {
                                                                                                                                              "type": "object",
                                                                                                                                              "additionalProperties": false,
                                                                                                                                              "properties": {
                                                                                                                                                "var": {
                                                                                                                                                  "description": "Specifies a variable to check.",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ]
                                                                                                                                                },
                                                                                                                                                "operator": {
                                                                                                                                                  "description": "Specifies an operator.",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ],
                                                                                                                                                  "enum": [
                                                                                                                                                    "=",
                                                                                                                                                    "!=",
                                                                                                                                                    "<=",
                                                                                                                                                    ">=",
                                                                                                                                                    ">",
                                                                                                                                                    "<",
                                                                                                                                                    "in",
                                                                                                                                                    "not_in",
                                                                                                                                                    "~",
                                                                                                                                                    "~*",
                                                                                                                                                    "!~",
                                                                                                                                                    "!~*",
                                                                                                                                                    "ip_range",
                                                                                                                                                    "!ip_range",
                                                                                                                                                    "dn_mask",
                                                                                                                                                    "!dn_mask"
                                                                                                                                                  ]
                                                                                                                                                },
                                                                                                                                                "val": {
                                                                                                                                                  "description": "Specifies a value to check.",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "required": [
                                                                                                                                                "var",
                                                                                                                                                "operator",
                                                                                                                                                "val"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "trace_config": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "enableAllActions": {
                                                                                                                                                "description": "enable tracing of all actions in chains",
                                                                                                                                                "type": "boolean"
                                                                                                                                              },
                                                                                                                                              "enableAllChains": {
                                                                                                                                                "description": "enable tracing of all actions in child chains",
                                                                                                                                                "type": "boolean"
                                                                                                                                              },
                                                                                                                                              "mode": {
                                                                                                                                                "description": "Enable or disable tracing at this level.",
                                                                                                                                                "type": "object",
                                                                                                                                                "additionalProperties": false,
                                                                                                                                                "properties": {
                                                                                                                                                  "enabled": {
                                                                                                                                                    "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                                    "type": [
                                                                                                                                                      "number",
                                                                                                                                                      "string"
                                                                                                                                                    ],
                                                                                                                                                    "enum": [
                                                                                                                                                      "on",
                                                                                                                                                      "off",
                                                                                                                                                      "var_based"
                                                                                                                                                    ]
                                                                                                                                                  },
                                                                                                                                                  "var": {
                                                                                                                                                    "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                                    "type": [
                                                                                                                                                      "number",
                                                                                                                                                      "string"
                                                                                                                                                    ]
                                                                                                                                                  }
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "spanAttributes": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "name": {
                                                                                                                                                      "description": "name of attribute",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "value": {
                                                                                                                                                      "description": "value of attribute, can contain variables",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    }
                                                                                                                                                  }
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "spanName": {
                                                                                                                                                "description": "Specify name of span",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "enableSocketsTracing": {
                                                                                                                                                "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                                                "type": "boolean"
                                                                                                                                              }
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "params": {
                                                                                                                                            "description": "Specifies extra parameters for the actions.",
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": true
                                                                                                                                          },
                                                                                                                                          "requiredChildOneOf": {
                                                                                                                                            "description": "Specifies unverifed action check",
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "decision": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ],
                                                                                                                                                "enum": [
                                                                                                                                                  "BLOCK",
                                                                                                                                                  "WARN"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "onlyCheckers": {
                                                                                                                                                "type": "boolean"
                                                                                                                                              },
                                                                                                                                              "include": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "exclude": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "string"
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "decision"
                                                                                                                                            ],
                                                                                                                                            "allOf": [
                                                                                                                                              {
                                                                                                                                                "if": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "required": [
                                                                                                                                                    "exclude"
                                                                                                                                                  ],
                                                                                                                                                  "properties": {
                                                                                                                                                    "exclude": {}
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "then": {
                                                                                                                                                  "not": {
                                                                                                                                                    "required": [
                                                                                                                                                      "include"
                                                                                                                                                    ]
                                                                                                                                                  }
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              {
                                                                                                                                                "if": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "required": [
                                                                                                                                                    "include"
                                                                                                                                                  ],
                                                                                                                                                  "properties": {
                                                                                                                                                    "include": {}
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "then": {
                                                                                                                                                  "not": {
                                                                                                                                                    "required": [
                                                                                                                                                      "exclude"
                                                                                                                                                    ]
                                                                                                                                                  }
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "actions": {
                                                                                                                                            "description": "Specifies a list of actions.",
                                                                                                                                            "type": "array",
                                                                                                                                            "items": {
                                                                                                                                              "type": "object",
                                                                                                                                              "additionalProperties": false,
                                                                                                                                              "properties": {
                                                                                                                                                "action": {
                                                                                                                                                  "description": "Specifies an action to perform",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ],
                                                                                                                                                  "enum": [
                                                                                                                                                    "ASN1ContentExtractor",
                                                                                                                                                    "Base64Decode",
                                                                                                                                                    "ConditionChecker",
                                                                                                                                                    "CheckDataSize",
                                                                                                                                                    "CheckMimeType",
                                                                                                                                                    "JsonPathExtract",
                                                                                                                                                    "JsonPathExtractToVars",
                                                                                                                                                    "JsonValidation",
                                                                                                                                                    "XsdValidation",
                                                                                                                                                    "PostFormDataToFlateJson",
                                                                                                                                                    "MultipartExtract",
                                                                                                                                                    "SetMessageFromVar",
                                                                                                                                                    "SetVarFromMessage",
                                                                                                                                                    "JwsToJson",
                                                                                                                                                    "XPathExtract",
                                                                                                                                                    "XPathExtractToVars",
                                                                                                                                                    "SharedMapDeleter",
                                                                                                                                                    "SharedMapRemover",
                                                                                                                                                    "SharedMapSetter",
                                                                                                                                                    "SharedMapGetter",
                                                                                                                                                    "RandomNumberToVar",
                                                                                                                                                    "VarsToSharedMap",
                                                                                                                                                    "SharedMapToVars",
                                                                                                                                                    "AntivirusFileChecker",
                                                                                                                                                    "MtomExtractor",
                                                                                                                                                    "JsonTransformer",
                                                                                                                                                    "SetVar",
                                                                                                                                                    "GraphQLRequestValidation",
                                                                                                                                                    "ProtobufValidation",
                                                                                                                                                    "OpenApiValidation",
                                                                                                                                                    "DelimiterSplitter",
                                                                                                                                                    "VarsToFile",
                                                                                                                                                    "FileToVars",
                                                                                                                                                    "WsdlValidation",
                                                                                                                                                    "HttpFilter",
                                                                                                                                                    "ProtobufToJson",
                                                                                                                                                    "FilterMds",
                                                                                                                                                    "OcspSignValidator",
                                                                                                                                                    "OcspToJson",
                                                                                                                                                    "ASN1ToJson",
                                                                                                                                                    "XmlTransformer",
                                                                                                                                                    "UrlEncode",
                                                                                                                                                    "UrlDecodeUni",
                                                                                                                                                    "UrlDecode",
                                                                                                                                                    "HexDecode",
                                                                                                                                                    "HexEncode",
                                                                                                                                                    "ToLowerCase",
                                                                                                                                                    "ToUpperCase",
                                                                                                                                                    "Utf8ToUnicode",
                                                                                                                                                    "Trim",
                                                                                                                                                    "ICAPFileChecker",
                                                                                                                                                    "MessageToFile",
                                                                                                                                                    "MultipartFormGenerateFromVar",
                                                                                                                                                    "HttpSender",
                                                                                                                                                    "MessageAccumulator",
                                                                                                                                                    "MessageFromAccumulator",
                                                                                                                                                    "MessageFromPattern",
                                                                                                                                                    "MultipartFormGenerateFromMessage",
                                                                                                                                                    "JsonPatchMessage",
                                                                                                                                                    "JsonPatchVar",
                                                                                                                                                    "DigestFromMessage",
                                                                                                                                                    "Base64Encode",
                                                                                                                                                    "HMac",
                                                                                                                                                    "FileToMessage",
                                                                                                                                                    "JwtVerifier",
                                                                                                                                                    "CharsetChecker",
                                                                                                                                                    "LdapSearch",
                                                                                                                                                    "UnicodeDecode",
                                                                                                                                                    "MessageMapper",
                                                                                                                                                    "SimpleRateLimiter",
                                                                                                                                                    "EventSourceConverter",
                                                                                                                                                    "LazySessionTimeChecker",
                                                                                                                                                    "CalculateMessageProperties"
                                                                                                                                                  ]
                                                                                                                                                },
                                                                                                                                                "id": {
                                                                                                                                                  "description": "An identificator of action",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ]
                                                                                                                                                },
                                                                                                                                                "conditions": {
                                                                                                                                                  "description": "Specifies the conditions for performina an action.",
                                                                                                                                                  "type": "array",
                                                                                                                                                  "items": {
                                                                                                                                                    "type": "object",
                                                                                                                                                    "additionalProperties": false,
                                                                                                                                                    "properties": {
                                                                                                                                                      "var": {
                                                                                                                                                        "description": "Specifies a variable to check.",
                                                                                                                                                        "type": [
                                                                                                                                                          "number",
                                                                                                                                                          "string"
                                                                                                                                                        ]
                                                                                                                                                      },
                                                                                                                                                      "operator": {
                                                                                                                                                        "description": "Specifies an operator.",
                                                                                                                                                        "type": [
                                                                                                                                                          "number",
                                                                                                                                                          "string"
                                                                                                                                                        ],
                                                                                                                                                        "enum": [
                                                                                                                                                          "=",
                                                                                                                                                          "!=",
                                                                                                                                                          "<=",
                                                                                                                                                          ">=",
                                                                                                                                                          ">",
                                                                                                                                                          "<",
                                                                                                                                                          "in",
                                                                                                                                                          "not_in",
                                                                                                                                                          "~",
                                                                                                                                                          "~*",
                                                                                                                                                          "!~",
                                                                                                                                                          "!~*",
                                                                                                                                                          "ip_range",
                                                                                                                                                          "!ip_range",
                                                                                                                                                          "dn_mask",
                                                                                                                                                          "!dn_mask"
                                                                                                                                                        ]
                                                                                                                                                      },
                                                                                                                                                      "val": {
                                                                                                                                                        "description": "Specifies a value to check.",
                                                                                                                                                        "type": [
                                                                                                                                                          "number",
                                                                                                                                                          "string"
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    },
                                                                                                                                                    "required": [
                                                                                                                                                      "var",
                                                                                                                                                      "operator",
                                                                                                                                                      "val"
                                                                                                                                                    ]
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "trace_config": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "enableAllActions": {
                                                                                                                                                      "description": "enable tracing of all actions in chains",
                                                                                                                                                      "type": "boolean"
                                                                                                                                                    },
                                                                                                                                                    "enableAllChains": {
                                                                                                                                                      "description": "enable tracing of all actions in child chains",
                                                                                                                                                      "type": "boolean"
                                                                                                                                                    },
                                                                                                                                                    "mode": {
                                                                                                                                                      "description": "Enable or disable tracing at this level.",
                                                                                                                                                      "type": "object",
                                                                                                                                                      "additionalProperties": false,
                                                                                                                                                      "properties": {
                                                                                                                                                        "enabled": {
                                                                                                                                                          "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                                          "type": [
                                                                                                                                                            "number",
                                                                                                                                                            "string"
                                                                                                                                                          ],
                                                                                                                                                          "enum": [
                                                                                                                                                            "on",
                                                                                                                                                            "off",
                                                                                                                                                            "var_based"
                                                                                                                                                          ]
                                                                                                                                                        },
                                                                                                                                                        "var": {
                                                                                                                                                          "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                                          "type": [
                                                                                                                                                            "number",
                                                                                                                                                            "string"
                                                                                                                                                          ]
                                                                                                                                                        }
                                                                                                                                                      }
                                                                                                                                                    },
                                                                                                                                                    "spanAttributes": {
                                                                                                                                                      "type": "array",
                                                                                                                                                      "items": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "additionalProperties": false,
                                                                                                                                                        "properties": {
                                                                                                                                                          "name": {
                                                                                                                                                            "description": "name of attribute",
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "value": {
                                                                                                                                                            "description": "value of attribute, can contain variables",
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          }
                                                                                                                                                        }
                                                                                                                                                      }
                                                                                                                                                    },
                                                                                                                                                    "spanName": {
                                                                                                                                                      "description": "Specify name of span",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "enableSocketsTracing": {
                                                                                                                                                      "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                                                      "type": "boolean"
                                                                                                                                                    }
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "params": {
                                                                                                                                                  "description": "Specifies extra parameters for the actions.",
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": true
                                                                                                                                                },
                                                                                                                                                "requiredChildOneOf": {
                                                                                                                                                  "description": "Specifies unverifed action check",
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "decision": {
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ],
                                                                                                                                                      "enum": [
                                                                                                                                                        "BLOCK",
                                                                                                                                                        "WARN"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "onlyCheckers": {
                                                                                                                                                      "type": "boolean"
                                                                                                                                                    },
                                                                                                                                                    "include": {
                                                                                                                                                      "type": "array",
                                                                                                                                                      "items": {
                                                                                                                                                        "type": [
                                                                                                                                                          "number",
                                                                                                                                                          "string"
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    },
                                                                                                                                                    "exclude": {
                                                                                                                                                      "type": "array",
                                                                                                                                                      "items": {
                                                                                                                                                        "type": "string"
                                                                                                                                                      }
                                                                                                                                                    }
                                                                                                                                                  },
                                                                                                                                                  "required": [
                                                                                                                                                    "decision"
                                                                                                                                                  ],
                                                                                                                                                  "allOf": [
                                                                                                                                                    {
                                                                                                                                                      "if": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "required": [
                                                                                                                                                          "exclude"
                                                                                                                                                        ],
                                                                                                                                                        "properties": {
                                                                                                                                                          "exclude": {}
                                                                                                                                                        }
                                                                                                                                                      },
                                                                                                                                                      "then": {
                                                                                                                                                        "not": {
                                                                                                                                                          "required": [
                                                                                                                                                            "include"
                                                                                                                                                          ]
                                                                                                                                                        }
                                                                                                                                                      }
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                      "if": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "required": [
                                                                                                                                                          "include"
                                                                                                                                                        ],
                                                                                                                                                        "properties": {
                                                                                                                                                          "include": {}
                                                                                                                                                        }
                                                                                                                                                      },
                                                                                                                                                      "then": {
                                                                                                                                                        "not": {
                                                                                                                                                          "required": [
                                                                                                                                                            "exclude"
                                                                                                                                                          ]
                                                                                                                                                        }
                                                                                                                                                      }
                                                                                                                                                    }
                                                                                                                                                  ]
                                                                                                                                                },
                                                                                                                                                "actions": {
                                                                                                                                                  "description": "Specifies a list of actions.",
                                                                                                                                                  "type": "array",
                                                                                                                                                  "items": {
                                                                                                                                                    "type": "object",
                                                                                                                                                    "additionalProperties": false,
                                                                                                                                                    "properties": {
                                                                                                                                                      "action": {
                                                                                                                                                        "description": "Specifies an action to perform",
                                                                                                                                                        "type": [
                                                                                                                                                          "number",
                                                                                                                                                          "string"
                                                                                                                                                        ],
                                                                                                                                                        "enum": [
                                                                                                                                                          "ASN1ContentExtractor",
                                                                                                                                                          "Base64Decode",
                                                                                                                                                          "ConditionChecker",
                                                                                                                                                          "CheckDataSize",
                                                                                                                                                          "CheckMimeType",
                                                                                                                                                          "JsonPathExtract",
                                                                                                                                                          "JsonPathExtractToVars",
                                                                                                                                                          "JsonValidation",
                                                                                                                                                          "XsdValidation",
                                                                                                                                                          "PostFormDataToFlateJson",
                                                                                                                                                          "MultipartExtract",
                                                                                                                                                          "SetMessageFromVar",
                                                                                                                                                          "SetVarFromMessage",
                                                                                                                                                          "JwsToJson",
                                                                                                                                                          "XPathExtract",
                                                                                                                                                          "XPathExtractToVars",
                                                                                                                                                          "SharedMapDeleter",
                                                                                                                                                          "SharedMapRemover",
                                                                                                                                                          "SharedMapSetter",
                                                                                                                                                          "SharedMapGetter",
                                                                                                                                                          "RandomNumberToVar",
                                                                                                                                                          "VarsToSharedMap",
                                                                                                                                                          "SharedMapToVars",
                                                                                                                                                          "AntivirusFileChecker",
                                                                                                                                                          "MtomExtractor",
                                                                                                                                                          "JsonTransformer",
                                                                                                                                                          "SetVar",
                                                                                                                                                          "GraphQLRequestValidation",
                                                                                                                                                          "ProtobufValidation",
                                                                                                                                                          "OpenApiValidation",
                                                                                                                                                          "DelimiterSplitter",
                                                                                                                                                          "VarsToFile",
                                                                                                                                                          "FileToVars",
                                                                                                                                                          "WsdlValidation",
                                                                                                                                                          "HttpFilter",
                                                                                                                                                          "ProtobufToJson",
                                                                                                                                                          "FilterMds",
                                                                                                                                                          "OcspSignValidator",
                                                                                                                                                          "OcspToJson",
                                                                                                                                                          "ASN1ToJson",
                                                                                                                                                          "XmlTransformer",
                                                                                                                                                          "UrlEncode",
                                                                                                                                                          "UrlDecodeUni",
                                                                                                                                                          "UrlDecode",
                                                                                                                                                          "HexDecode",
                                                                                                                                                          "HexEncode",
                                                                                                                                                          "ToLowerCase",
                                                                                                                                                          "ToUpperCase",
                                                                                                                                                          "Utf8ToUnicode",
                                                                                                                                                          "Trim",
                                                                                                                                                          "ICAPFileChecker",
                                                                                                                                                          "MessageToFile",
                                                                                                                                                          "MultipartFormGenerateFromVar",
                                                                                                                                                          "HttpSender",
                                                                                                                                                          "MessageAccumulator",
                                                                                                                                                          "MessageFromAccumulator",
                                                                                                                                                          "MessageFromPattern",
                                                                                                                                                          "MultipartFormGenerateFromMessage",
                                                                                                                                                          "JsonPatchMessage",
                                                                                                                                                          "JsonPatchVar",
                                                                                                                                                          "DigestFromMessage",
                                                                                                                                                          "Base64Encode",
                                                                                                                                                          "HMac",
                                                                                                                                                          "FileToMessage",
                                                                                                                                                          "JwtVerifier",
                                                                                                                                                          "CharsetChecker",
                                                                                                                                                          "LdapSearch",
                                                                                                                                                          "UnicodeDecode",
                                                                                                                                                          "MessageMapper",
                                                                                                                                                          "SimpleRateLimiter",
                                                                                                                                                          "EventSourceConverter",
                                                                                                                                                          "LazySessionTimeChecker",
                                                                                                                                                          "CalculateMessageProperties"
                                                                                                                                                        ]
                                                                                                                                                      },
                                                                                                                                                      "id": {
                                                                                                                                                        "description": "An identificator of action",
                                                                                                                                                        "type": [
                                                                                                                                                          "number",
                                                                                                                                                          "string"
                                                                                                                                                        ]
                                                                                                                                                      },
                                                                                                                                                      "conditions": {
                                                                                                                                                        "description": "Specifies the conditions for performina an action.",
                                                                                                                                                        "type": "array",
                                                                                                                                                        "items": {
                                                                                                                                                          "type": "object",
                                                                                                                                                          "additionalProperties": false,
                                                                                                                                                          "properties": {
                                                                                                                                                            "var": {
                                                                                                                                                              "description": "Specifies a variable to check.",
                                                                                                                                                              "type": [
                                                                                                                                                                "number",
                                                                                                                                                                "string"
                                                                                                                                                              ]
                                                                                                                                                            },
                                                                                                                                                            "operator": {
                                                                                                                                                              "description": "Specifies an operator.",
                                                                                                                                                              "type": [
                                                                                                                                                                "number",
                                                                                                                                                                "string"
                                                                                                                                                              ],
                                                                                                                                                              "enum": [
                                                                                                                                                                "=",
                                                                                                                                                                "!=",
                                                                                                                                                                "<=",
                                                                                                                                                                ">=",
                                                                                                                                                                ">",
                                                                                                                                                                "<",
                                                                                                                                                                "in",
                                                                                                                                                                "not_in",
                                                                                                                                                                "~",
                                                                                                                                                                "~*",
                                                                                                                                                                "!~",
                                                                                                                                                                "!~*",
                                                                                                                                                                "ip_range",
                                                                                                                                                                "!ip_range",
                                                                                                                                                                "dn_mask",
                                                                                                                                                                "!dn_mask"
                                                                                                                                                              ]
                                                                                                                                                            },
                                                                                                                                                            "val": {
                                                                                                                                                              "description": "Specifies a value to check.",
                                                                                                                                                              "type": [
                                                                                                                                                                "number",
                                                                                                                                                                "string"
                                                                                                                                                              ]
                                                                                                                                                            }
                                                                                                                                                          },
                                                                                                                                                          "required": [
                                                                                                                                                            "var",
                                                                                                                                                            "operator",
                                                                                                                                                            "val"
                                                                                                                                                          ]
                                                                                                                                                        }
                                                                                                                                                      },
                                                                                                                                                      "trace_config": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "additionalProperties": false,
                                                                                                                                                        "properties": {
                                                                                                                                                          "enableAllActions": {
                                                                                                                                                            "description": "enable tracing of all actions in chains",
                                                                                                                                                            "type": "boolean"
                                                                                                                                                          },
                                                                                                                                                          "enableAllChains": {
                                                                                                                                                            "description": "enable tracing of all actions in child chains",
                                                                                                                                                            "type": "boolean"
                                                                                                                                                          },
                                                                                                                                                          "mode": {
                                                                                                                                                            "description": "Enable or disable tracing at this level.",
                                                                                                                                                            "type": "object",
                                                                                                                                                            "additionalProperties": false,
                                                                                                                                                            "properties": {
                                                                                                                                                              "enabled": {
                                                                                                                                                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                                                "type": [
                                                                                                                                                                  "number",
                                                                                                                                                                  "string"
                                                                                                                                                                ],
                                                                                                                                                                "enum": [
                                                                                                                                                                  "on",
                                                                                                                                                                  "off",
                                                                                                                                                                  "var_based"
                                                                                                                                                                ]
                                                                                                                                                              },
                                                                                                                                                              "var": {
                                                                                                                                                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                                                "type": [
                                                                                                                                                                  "number",
                                                                                                                                                                  "string"
                                                                                                                                                                ]
                                                                                                                                                              }
                                                                                                                                                            }
                                                                                                                                                          },
                                                                                                                                                          "spanAttributes": {
                                                                                                                                                            "type": "array",
                                                                                                                                                            "items": {
                                                                                                                                                              "type": "object",
                                                                                                                                                              "additionalProperties": false,
                                                                                                                                                              "properties": {
                                                                                                                                                                "name": {
                                                                                                                                                                  "description": "name of attribute",
                                                                                                                                                                  "type": [
                                                                                                                                                                    "number",
                                                                                                                                                                    "string"
                                                                                                                                                                  ]
                                                                                                                                                                },
                                                                                                                                                                "value": {
                                                                                                                                                                  "description": "value of attribute, can contain variables",
                                                                                                                                                                  "type": [
                                                                                                                                                                    "number",
                                                                                                                                                                    "string"
                                                                                                                                                                  ]
                                                                                                                                                                }
                                                                                                                                                              }
                                                                                                                                                            }
                                                                                                                                                          },
                                                                                                                                                          "spanName": {
                                                                                                                                                            "description": "Specify name of span",
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "enableSocketsTracing": {
                                                                                                                                                            "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                                                            "type": "boolean"
                                                                                                                                                          }
                                                                                                                                                        }
                                                                                                                                                      },
                                                                                                                                                      "params": {
                                                                                                                                                        "description": "Specifies extra parameters for the actions.",
                                                                                                                                                        "type": "object",
                                                                                                                                                        "additionalProperties": true
                                                                                                                                                      },
                                                                                                                                                      "requiredChildOneOf": {
                                                                                                                                                        "description": "Specifies unverifed action check",
                                                                                                                                                        "type": "object",
                                                                                                                                                        "additionalProperties": false,
                                                                                                                                                        "properties": {
                                                                                                                                                          "decision": {
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ],
                                                                                                                                                            "enum": [
                                                                                                                                                              "BLOCK",
                                                                                                                                                              "WARN"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "onlyCheckers": {
                                                                                                                                                            "type": "boolean"
                                                                                                                                                          },
                                                                                                                                                          "include": {
                                                                                                                                                            "type": "array",
                                                                                                                                                            "items": {
                                                                                                                                                              "type": [
                                                                                                                                                                "number",
                                                                                                                                                                "string"
                                                                                                                                                              ]
                                                                                                                                                            }
                                                                                                                                                          },
                                                                                                                                                          "exclude": {
                                                                                                                                                            "type": "array",
                                                                                                                                                            "items": {
                                                                                                                                                              "type": "string"
                                                                                                                                                            }
                                                                                                                                                          }
                                                                                                                                                        },
                                                                                                                                                        "required": [
                                                                                                                                                          "decision"
                                                                                                                                                        ],
                                                                                                                                                        "allOf": [
                                                                                                                                                          {
                                                                                                                                                            "if": {
                                                                                                                                                              "type": "object",
                                                                                                                                                              "required": [
                                                                                                                                                                "exclude"
                                                                                                                                                              ],
                                                                                                                                                              "properties": {
                                                                                                                                                                "exclude": {}
                                                                                                                                                              }
                                                                                                                                                            },
                                                                                                                                                            "then": {
                                                                                                                                                              "not": {
                                                                                                                                                                "required": [
                                                                                                                                                                  "include"
                                                                                                                                                                ]
                                                                                                                                                              }
                                                                                                                                                            }
                                                                                                                                                          },
                                                                                                                                                          {
                                                                                                                                                            "if": {
                                                                                                                                                              "type": "object",
                                                                                                                                                              "required": [
                                                                                                                                                                "include"
                                                                                                                                                              ],
                                                                                                                                                              "properties": {
                                                                                                                                                                "include": {}
                                                                                                                                                              }
                                                                                                                                                            },
                                                                                                                                                            "then": {
                                                                                                                                                              "not": {
                                                                                                                                                                "required": [
                                                                                                                                                                  "exclude"
                                                                                                                                                                ]
                                                                                                                                                              }
                                                                                                                                                            }
                                                                                                                                                          }
                                                                                                                                                        ]
                                                                                                                                                      },
                                                                                                                                                      "actions": {
                                                                                                                                                        "description": "Specifies a list of actions.",
                                                                                                                                                        "type": "array",
                                                                                                                                                        "items": {
                                                                                                                                                          "type": "object",
                                                                                                                                                          "additionalProperties": false,
                                                                                                                                                          "properties": {
                                                                                                                                                            "action": {
                                                                                                                                                              "description": "Specifies an action to perform",
                                                                                                                                                              "type": [
                                                                                                                                                                "number",
                                                                                                                                                                "string"
                                                                                                                                                              ],
                                                                                                                                                              "enum": [
                                                                                                                                                                "ASN1ContentExtractor",
                                                                                                                                                                "Base64Decode",
                                                                                                                                                                "ConditionChecker",
                                                                                                                                                                "CheckDataSize",
                                                                                                                                                                "CheckMimeType",
                                                                                                                                                                "JsonPathExtract",
                                                                                                                                                                "JsonPathExtractToVars",
                                                                                                                                                                "JsonValidation",
                                                                                                                                                                "XsdValidation",
                                                                                                                                                                "PostFormDataToFlateJson",
                                                                                                                                                                "MultipartExtract",
                                                                                                                                                                "SetMessageFromVar",
                                                                                                                                                                "SetVarFromMessage",
                                                                                                                                                                "JwsToJson",
                                                                                                                                                                "XPathExtract",
                                                                                                                                                                "XPathExtractToVars",
                                                                                                                                                                "SharedMapDeleter",
                                                                                                                                                                "SharedMapRemover",
                                                                                                                                                                "SharedMapSetter",
                                                                                                                                                                "SharedMapGetter",
                                                                                                                                                                "RandomNumberToVar",
                                                                                                                                                                "VarsToSharedMap",
                                                                                                                                                                "SharedMapToVars",
                                                                                                                                                                "AntivirusFileChecker",
                                                                                                                                                                "MtomExtractor",
                                                                                                                                                                "JsonTransformer",
                                                                                                                                                                "SetVar",
                                                                                                                                                                "GraphQLRequestValidation",
                                                                                                                                                                "ProtobufValidation",
                                                                                                                                                                "OpenApiValidation",
                                                                                                                                                                "DelimiterSplitter",
                                                                                                                                                                "VarsToFile",
                                                                                                                                                                "FileToVars",
                                                                                                                                                                "WsdlValidation",
                                                                                                                                                                "HttpFilter",
                                                                                                                                                                "ProtobufToJson",
                                                                                                                                                                "FilterMds",
                                                                                                                                                                "OcspSignValidator",
                                                                                                                                                                "OcspToJson",
                                                                                                                                                                "ASN1ToJson",
                                                                                                                                                                "XmlTransformer",
                                                                                                                                                                "UrlEncode",
                                                                                                                                                                "UrlDecodeUni",
                                                                                                                                                                "UrlDecode",
                                                                                                                                                                "HexDecode",
                                                                                                                                                                "HexEncode",
                                                                                                                                                                "ToLowerCase",
                                                                                                                                                                "ToUpperCase",
                                                                                                                                                                "Utf8ToUnicode",
                                                                                                                                                                "Trim",
                                                                                                                                                                "ICAPFileChecker",
                                                                                                                                                                "MessageToFile",
                                                                                                                                                                "MultipartFormGenerateFromVar",
                                                                                                                                                                "HttpSender",
                                                                                                                                                                "MessageAccumulator",
                                                                                                                                                                "MessageFromAccumulator",
                                                                                                                                                                "MessageFromPattern",
                                                                                                                                                                "MultipartFormGenerateFromMessage",
                                                                                                                                                                "JsonPatchMessage",
                                                                                                                                                                "JsonPatchVar",
                                                                                                                                                                "DigestFromMessage",
                                                                                                                                                                "Base64Encode",
                                                                                                                                                                "HMac",
                                                                                                                                                                "FileToMessage",
                                                                                                                                                                "JwtVerifier",
                                                                                                                                                                "CharsetChecker",
                                                                                                                                                                "LdapSearch",
                                                                                                                                                                "UnicodeDecode",
                                                                                                                                                                "MessageMapper",
                                                                                                                                                                "SimpleRateLimiter",
                                                                                                                                                                "EventSourceConverter",
                                                                                                                                                                "LazySessionTimeChecker",
                                                                                                                                                                "CalculateMessageProperties"
                                                                                                                                                              ]
                                                                                                                                                            },
                                                                                                                                                            "id": {
                                                                                                                                                              "description": "An identificator of action",
                                                                                                                                                              "type": [
                                                                                                                                                                "number",
                                                                                                                                                                "string"
                                                                                                                                                              ]
                                                                                                                                                            },
                                                                                                                                                            "conditions": {
                                                                                                                                                              "description": "Specifies the conditions for performina an action.",
                                                                                                                                                              "type": "array",
                                                                                                                                                              "items": {
                                                                                                                                                                "type": "object",
                                                                                                                                                                "additionalProperties": false,
                                                                                                                                                                "properties": {
                                                                                                                                                                  "var": {
                                                                                                                                                                    "description": "Specifies a variable to check.",
                                                                                                                                                                    "type": [
                                                                                                                                                                      "number",
                                                                                                                                                                      "string"
                                                                                                                                                                    ]
                                                                                                                                                                  },
                                                                                                                                                                  "operator": {
                                                                                                                                                                    "description": "Specifies an operator.",
                                                                                                                                                                    "type": [
                                                                                                                                                                      "number",
                                                                                                                                                                      "string"
                                                                                                                                                                    ],
                                                                                                                                                                    "enum": [
                                                                                                                                                                      "=",
                                                                                                                                                                      "!=",
                                                                                                                                                                      "<=",
                                                                                                                                                                      ">=",
                                                                                                                                                                      ">",
                                                                                                                                                                      "<",
                                                                                                                                                                      "in",
                                                                                                                                                                      "not_in",
                                                                                                                                                                      "~",
                                                                                                                                                                      "~*",
                                                                                                                                                                      "!~",
                                                                                                                                                                      "!~*",
                                                                                                                                                                      "ip_range",
                                                                                                                                                                      "!ip_range",
                                                                                                                                                                      "dn_mask",
                                                                                                                                                                      "!dn_mask"
                                                                                                                                                                    ]
                                                                                                                                                                  },
                                                                                                                                                                  "val": {
                                                                                                                                                                    "description": "Specifies a value to check.",
                                                                                                                                                                    "type": [
                                                                                                                                                                      "number",
                                                                                                                                                                      "string"
                                                                                                                                                                    ]
                                                                                                                                                                  }
                                                                                                                                                                },
                                                                                                                                                                "required": [
                                                                                                                                                                  "var",
                                                                                                                                                                  "operator",
                                                                                                                                                                  "val"
                                                                                                                                                                ]
                                                                                                                                                              }
                                                                                                                                                            },
                                                                                                                                                            "trace_config": {
                                                                                                                                                              "type": "object",
                                                                                                                                                              "additionalProperties": false,
                                                                                                                                                              "properties": {
                                                                                                                                                                "enableAllActions": {
                                                                                                                                                                  "description": "enable tracing of all actions in chains",
                                                                                                                                                                  "type": "boolean"
                                                                                                                                                                },
                                                                                                                                                                "enableAllChains": {
                                                                                                                                                                  "description": "enable tracing of all actions in child chains",
                                                                                                                                                                  "type": "boolean"
                                                                                                                                                                },
                                                                                                                                                                "mode": {
                                                                                                                                                                  "description": "Enable or disable tracing at this level.",
                                                                                                                                                                  "type": "object",
                                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                                  "properties": {
                                                                                                                                                                    "enabled": {
                                                                                                                                                                      "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                                                      "type": [
                                                                                                                                                                        "number",
                                                                                                                                                                        "string"
                                                                                                                                                                      ],
                                                                                                                                                                      "enum": [
                                                                                                                                                                        "on",
                                                                                                                                                                        "off",
                                                                                                                                                                        "var_based"
                                                                                                                                                                      ]
                                                                                                                                                                    },
                                                                                                                                                                    "var": {
                                                                                                                                                                      "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                                                      "type": [
                                                                                                                                                                        "number",
                                                                                                                                                                        "string"
                                                                                                                                                                      ]
                                                                                                                                                                    }
                                                                                                                                                                  }
                                                                                                                                                                },
                                                                                                                                                                "spanAttributes": {
                                                                                                                                                                  "type": "array",
                                                                                                                                                                  "items": {
                                                                                                                                                                    "type": "object",
                                                                                                                                                                    "additionalProperties": false,
                                                                                                                                                                    "properties": {
                                                                                                                                                                      "name": {
                                                                                                                                                                        "description": "name of attribute",
                                                                                                                                                                        "type": [
                                                                                                                                                                          "number",
                                                                                                                                                                          "string"
                                                                                                                                                                        ]
                                                                                                                                                                      },
                                                                                                                                                                      "value": {
                                                                                                                                                                        "description": "value of attribute, can contain variables",
                                                                                                                                                                        "type": [
                                                                                                                                                                          "number",
                                                                                                                                                                          "string"
                                                                                                                                                                        ]
                                                                                                                                                                      }
                                                                                                                                                                    }
                                                                                                                                                                  }
                                                                                                                                                                },
                                                                                                                                                                "spanName": {
                                                                                                                                                                  "description": "Specify name of span",
                                                                                                                                                                  "type": [
                                                                                                                                                                    "number",
                                                                                                                                                                    "string"
                                                                                                                                                                  ]
                                                                                                                                                                },
                                                                                                                                                                "enableSocketsTracing": {
                                                                                                                                                                  "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                                                                  "type": "boolean"
                                                                                                                                                                }
                                                                                                                                                              }
                                                                                                                                                            },
                                                                                                                                                            "params": {
                                                                                                                                                              "description": "Specifies extra parameters for the actions.",
                                                                                                                                                              "type": "object",
                                                                                                                                                              "additionalProperties": true
                                                                                                                                                            },
                                                                                                                                                            "requiredChildOneOf": {
                                                                                                                                                              "description": "Specifies unverifed action check",
                                                                                                                                                              "type": "object",
                                                                                                                                                              "additionalProperties": false,
                                                                                                                                                              "properties": {
                                                                                                                                                                "decision": {
                                                                                                                                                                  "type": [
                                                                                                                                                                    "number",
                                                                                                                                                                    "string"
                                                                                                                                                                  ],
                                                                                                                                                                  "enum": [
                                                                                                                                                                    "BLOCK",
                                                                                                                                                                    "WARN"
                                                                                                                                                                  ]
                                                                                                                                                                },
                                                                                                                                                                "onlyCheckers": {
                                                                                                                                                                  "type": "boolean"
                                                                                                                                                                },
                                                                                                                                                                "include": {
                                                                                                                                                                  "type": "array",
                                                                                                                                                                  "items": {
                                                                                                                                                                    "type": [
                                                                                                                                                                      "number",
                                                                                                                                                                      "string"
                                                                                                                                                                    ]
                                                                                                                                                                  }
                                                                                                                                                                },
                                                                                                                                                                "exclude": {
                                                                                                                                                                  "type": "array",
                                                                                                                                                                  "items": {
                                                                                                                                                                    "type": "string"
                                                                                                                                                                  }
                                                                                                                                                                }
                                                                                                                                                              },
                                                                                                                                                              "required": [
                                                                                                                                                                "decision"
                                                                                                                                                              ],
                                                                                                                                                              "allOf": [
                                                                                                                                                                {
                                                                                                                                                                  "if": {
                                                                                                                                                                    "type": "object",
                                                                                                                                                                    "required": [
                                                                                                                                                                      "exclude"
                                                                                                                                                                    ],
                                                                                                                                                                    "properties": {
                                                                                                                                                                      "exclude": {}
                                                                                                                                                                    }
                                                                                                                                                                  },
                                                                                                                                                                  "then": {
                                                                                                                                                                    "not": {
                                                                                                                                                                      "required": [
                                                                                                                                                                        "include"
                                                                                                                                                                      ]
                                                                                                                                                                    }
                                                                                                                                                                  }
                                                                                                                                                                },
                                                                                                                                                                {
                                                                                                                                                                  "if": {
                                                                                                                                                                    "type": "object",
                                                                                                                                                                    "required": [
                                                                                                                                                                      "include"
                                                                                                                                                                    ],
                                                                                                                                                                    "properties": {
                                                                                                                                                                      "include": {}
                                                                                                                                                                    }
                                                                                                                                                                  },
                                                                                                                                                                  "then": {
                                                                                                                                                                    "not": {
                                                                                                                                                                      "required": [
                                                                                                                                                                        "exclude"
                                                                                                                                                                      ]
                                                                                                                                                                    }
                                                                                                                                                                  }
                                                                                                                                                                }
                                                                                                                                                              ]
                                                                                                                                                            },
                                                                                                                                                            "actions": {
                                                                                                                                                              "description": "Specifies a list of actions.",
                                                                                                                                                              "type": "array",
                                                                                                                                                              "items": {
                                                                                                                                                                "type": "object",
                                                                                                                                                                "additionalProperties": false,
                                                                                                                                                                "properties": {
                                                                                                                                                                  "action": {
                                                                                                                                                                    "description": "Specifies an action to perform",
                                                                                                                                                                    "type": [
                                                                                                                                                                      "number",
                                                                                                                                                                      "string"
                                                                                                                                                                    ],
                                                                                                                                                                    "enum": [
                                                                                                                                                                      "ASN1ContentExtractor",
                                                                                                                                                                      "Base64Decode",
                                                                                                                                                                      "ConditionChecker",
                                                                                                                                                                      "CheckDataSize",
                                                                                                                                                                      "CheckMimeType",
                                                                                                                                                                      "JsonPathExtract",
                                                                                                                                                                      "JsonPathExtractToVars",
                                                                                                                                                                      "JsonValidation",
                                                                                                                                                                      "XsdValidation",
                                                                                                                                                                      "PostFormDataToFlateJson",
                                                                                                                                                                      "MultipartExtract",
                                                                                                                                                                      "SetMessageFromVar",
                                                                                                                                                                      "SetVarFromMessage",
                                                                                                                                                                      "JwsToJson",
                                                                                                                                                                      "XPathExtract",
                                                                                                                                                                      "XPathExtractToVars",
                                                                                                                                                                      "SharedMapDeleter",
                                                                                                                                                                      "SharedMapRemover",
                                                                                                                                                                      "SharedMapSetter",
                                                                                                                                                                      "SharedMapGetter",
                                                                                                                                                                      "RandomNumberToVar",
                                                                                                                                                                      "VarsToSharedMap",
                                                                                                                                                                      "SharedMapToVars",
                                                                                                                                                                      "AntivirusFileChecker",
                                                                                                                                                                      "MtomExtractor",
                                                                                                                                                                      "JsonTransformer",
                                                                                                                                                                      "SetVar",
                                                                                                                                                                      "GraphQLRequestValidation",
                                                                                                                                                                      "ProtobufValidation",
                                                                                                                                                                      "OpenApiValidation",
                                                                                                                                                                      "DelimiterSplitter",
                                                                                                                                                                      "VarsToFile",
                                                                                                                                                                      "FileToVars",
                                                                                                                                                                      "WsdlValidation",
                                                                                                                                                                      "HttpFilter",
                                                                                                                                                                      "ProtobufToJson",
                                                                                                                                                                      "FilterMds",
                                                                                                                                                                      "OcspSignValidator",
                                                                                                                                                                      "OcspToJson",
                                                                                                                                                                      "ASN1ToJson",
                                                                                                                                                                      "XmlTransformer",
                                                                                                                                                                      "UrlEncode",
                                                                                                                                                                      "UrlDecodeUni",
                                                                                                                                                                      "UrlDecode",
                                                                                                                                                                      "HexDecode",
                                                                                                                                                                      "HexEncode",
                                                                                                                                                                      "ToLowerCase",
                                                                                                                                                                      "ToUpperCase",
                                                                                                                                                                      "Utf8ToUnicode",
                                                                                                                                                                      "Trim",
                                                                                                                                                                      "ICAPFileChecker",
                                                                                                                                                                      "MessageToFile",
                                                                                                                                                                      "MultipartFormGenerateFromVar",
                                                                                                                                                                      "HttpSender",
                                                                                                                                                                      "MessageAccumulator",
                                                                                                                                                                      "MessageFromAccumulator",
                                                                                                                                                                      "MessageFromPattern",
                                                                                                                                                                      "MultipartFormGenerateFromMessage",
                                                                                                                                                                      "JsonPatchMessage",
                                                                                                                                                                      "JsonPatchVar",
                                                                                                                                                                      "DigestFromMessage",
                                                                                                                                                                      "Base64Encode",
                                                                                                                                                                      "HMac",
                                                                                                                                                                      "FileToMessage",
                                                                                                                                                                      "JwtVerifier",
                                                                                                                                                                      "CharsetChecker",
                                                                                                                                                                      "LdapSearch",
                                                                                                                                                                      "UnicodeDecode",
                                                                                                                                                                      "MessageMapper",
                                                                                                                                                                      "SimpleRateLimiter",
                                                                                                                                                                      "EventSourceConverter",
                                                                                                                                                                      "LazySessionTimeChecker",
                                                                                                                                                                      "CalculateMessageProperties"
                                                                                                                                                                    ]
                                                                                                                                                                  },
                                                                                                                                                                  "id": {
                                                                                                                                                                    "description": "An identificator of action",
                                                                                                                                                                    "type": [
                                                                                                                                                                      "number",
                                                                                                                                                                      "string"
                                                                                                                                                                    ]
                                                                                                                                                                  },
                                                                                                                                                                  "conditions": {
                                                                                                                                                                    "description": "Specifies the conditions for performina an action.",
                                                                                                                                                                    "type": "array",
                                                                                                                                                                    "items": {
                                                                                                                                                                      "type": "object",
                                                                                                                                                                      "additionalProperties": false,
                                                                                                                                                                      "properties": {
                                                                                                                                                                        "var": {
                                                                                                                                                                          "description": "Specifies a variable to check.",
                                                                                                                                                                          "type": [
                                                                                                                                                                            "number",
                                                                                                                                                                            "string"
                                                                                                                                                                          ]
                                                                                                                                                                        },
                                                                                                                                                                        "operator": {
                                                                                                                                                                          "description": "Specifies an operator.",
                                                                                                                                                                          "type": [
                                                                                                                                                                            "number",
                                                                                                                                                                            "string"
                                                                                                                                                                          ],
                                                                                                                                                                          "enum": [
                                                                                                                                                                            "=",
                                                                                                                                                                            "!=",
                                                                                                                                                                            "<=",
                                                                                                                                                                            ">=",
                                                                                                                                                                            ">",
                                                                                                                                                                            "<",
                                                                                                                                                                            "in",
                                                                                                                                                                            "not_in",
                                                                                                                                                                            "~",
                                                                                                                                                                            "~*",
                                                                                                                                                                            "!~",
                                                                                                                                                                            "!~*",
                                                                                                                                                                            "ip_range",
                                                                                                                                                                            "!ip_range",
                                                                                                                                                                            "dn_mask",
                                                                                                                                                                            "!dn_mask"
                                                                                                                                                                          ]
                                                                                                                                                                        },
                                                                                                                                                                        "val": {
                                                                                                                                                                          "description": "Specifies a value to check.",
                                                                                                                                                                          "type": [
                                                                                                                                                                            "number",
                                                                                                                                                                            "string"
                                                                                                                                                                          ]
                                                                                                                                                                        }
                                                                                                                                                                      },
                                                                                                                                                                      "required": [
                                                                                                                                                                        "var",
                                                                                                                                                                        "operator",
                                                                                                                                                                        "val"
                                                                                                                                                                      ]
                                                                                                                                                                    }
                                                                                                                                                                  },
                                                                                                                                                                  "params": {
                                                                                                                                                                    "description": "Specifies extra parameters for the actions.",
                                                                                                                                                                    "type": "object",
                                                                                                                                                                    "additionalProperties": true
                                                                                                                                                                  }
                                                                                                                                                                },
                                                                                                                                                                "required": [
                                                                                                                                                                  "action"
                                                                                                                                                                ]
                                                                                                                                                              }
                                                                                                                                                            },
                                                                                                                                                            "audit": {
                                                                                                                                                              "type": "object",
                                                                                                                                                              "additionalProperties": false,
                                                                                                                                                              "properties": {
                                                                                                                                                                "enabled": {
                                                                                                                                                                  "type": "boolean"
                                                                                                                                                                },
                                                                                                                                                                "events": {
                                                                                                                                                                  "type": "array",
                                                                                                                                                                  "items": {
                                                                                                                                                                    "type": "object",
                                                                                                                                                                    "additionalProperties": false,
                                                                                                                                                                    "properties": {
                                                                                                                                                                      "name": {
                                                                                                                                                                        "type": [
                                                                                                                                                                          "number",
                                                                                                                                                                          "string"
                                                                                                                                                                        ]
                                                                                                                                                                      },
                                                                                                                                                                      "message": {
                                                                                                                                                                        "type": [
                                                                                                                                                                          "number",
                                                                                                                                                                          "string"
                                                                                                                                                                        ]
                                                                                                                                                                      },
                                                                                                                                                                      "conditions": {
                                                                                                                                                                        "type": "array",
                                                                                                                                                                        "items": {
                                                                                                                                                                          "type": "object",
                                                                                                                                                                          "additionalProperties": false,
                                                                                                                                                                          "properties": {
                                                                                                                                                                            "var": {
                                                                                                                                                                              "description": "Specifies a variable to check.",
                                                                                                                                                                              "type": [
                                                                                                                                                                                "number",
                                                                                                                                                                                "string"
                                                                                                                                                                              ]
                                                                                                                                                                            },
                                                                                                                                                                            "operator": {
                                                                                                                                                                              "description": "Specifies an operator.",
                                                                                                                                                                              "type": [
                                                                                                                                                                                "number",
                                                                                                                                                                                "string"
                                                                                                                                                                              ],
                                                                                                                                                                              "enum": [
                                                                                                                                                                                "=",
                                                                                                                                                                                "!=",
                                                                                                                                                                                "<=",
                                                                                                                                                                                ">=",
                                                                                                                                                                                ">",
                                                                                                                                                                                "<",
                                                                                                                                                                                "in",
                                                                                                                                                                                "not_in",
                                                                                                                                                                                "~",
                                                                                                                                                                                "~*",
                                                                                                                                                                                "!~",
                                                                                                                                                                                "!~*",
                                                                                                                                                                                "ip_range",
                                                                                                                                                                                "!ip_range",
                                                                                                                                                                                "dn_mask",
                                                                                                                                                                                "!dn_mask"
                                                                                                                                                                              ]
                                                                                                                                                                            },
                                                                                                                                                                            "val": {
                                                                                                                                                                              "description": "Specifies a value to check.",
                                                                                                                                                                              "type": [
                                                                                                                                                                                "number",
                                                                                                                                                                                "string"
                                                                                                                                                                              ]
                                                                                                                                                                            }
                                                                                                                                                                          },
                                                                                                                                                                          "required": [
                                                                                                                                                                            "var",
                                                                                                                                                                            "operator",
                                                                                                                                                                            "val"
                                                                                                                                                                          ]
                                                                                                                                                                        }
                                                                                                                                                                      },
                                                                                                                                                                      "fields": {
                                                                                                                                                                        "type": "array",
                                                                                                                                                                        "items": {
                                                                                                                                                                          "type": "object",
                                                                                                                                                                          "additionalProperties": false,
                                                                                                                                                                          "properties": {
                                                                                                                                                                            "key": {
                                                                                                                                                                              "type": [
                                                                                                                                                                                "number",
                                                                                                                                                                                "string"
                                                                                                                                                                              ]
                                                                                                                                                                            },
                                                                                                                                                                            "val": {
                                                                                                                                                                              "type": [
                                                                                                                                                                                "number",
                                                                                                                                                                                "string"
                                                                                                                                                                              ]
                                                                                                                                                                            }
                                                                                                                                                                          },
                                                                                                                                                                          "required": [
                                                                                                                                                                            "key",
                                                                                                                                                                            "val"
                                                                                                                                                                          ]
                                                                                                                                                                        }
                                                                                                                                                                      }
                                                                                                                                                                    },
                                                                                                                                                                    "required": [
                                                                                                                                                                      "name",
                                                                                                                                                                      "message"
                                                                                                                                                                    ]
                                                                                                                                                                  }
                                                                                                                                                                }
                                                                                                                                                              },
                                                                                                                                                              "required": [
                                                                                                                                                                "enabled"
                                                                                                                                                              ],
                                                                                                                                                              "allOf": [
                                                                                                                                                                {
                                                                                                                                                                  "if": {
                                                                                                                                                                    "type": "object",
                                                                                                                                                                    "required": [
                                                                                                                                                                      "enabled"
                                                                                                                                                                    ],
                                                                                                                                                                    "properties": {
                                                                                                                                                                      "enabled": {
                                                                                                                                                                        "const": false
                                                                                                                                                                      }
                                                                                                                                                                    }
                                                                                                                                                                  },
                                                                                                                                                                  "then": {
                                                                                                                                                                    "required": []
                                                                                                                                                                  },
                                                                                                                                                                  "else": {
                                                                                                                                                                    "required": [
                                                                                                                                                                      "events"
                                                                                                                                                                    ]
                                                                                                                                                                  }
                                                                                                                                                                }
                                                                                                                                                              ]
                                                                                                                                                            }
                                                                                                                                                          },
                                                                                                                                                          "required": [
                                                                                                                                                            "action"
                                                                                                                                                          ]
                                                                                                                                                        }
                                                                                                                                                      },
                                                                                                                                                      "audit": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "additionalProperties": false,
                                                                                                                                                        "properties": {
                                                                                                                                                          "enabled": {
                                                                                                                                                            "type": "boolean"
                                                                                                                                                          },
                                                                                                                                                          "events": {
                                                                                                                                                            "type": "array",
                                                                                                                                                            "items": {
                                                                                                                                                              "type": "object",
                                                                                                                                                              "additionalProperties": false,
                                                                                                                                                              "properties": {
                                                                                                                                                                "name": {
                                                                                                                                                                  "type": [
                                                                                                                                                                    "number",
                                                                                                                                                                    "string"
                                                                                                                                                                  ]
                                                                                                                                                                },
                                                                                                                                                                "message": {
                                                                                                                                                                  "type": [
                                                                                                                                                                    "number",
                                                                                                                                                                    "string"
                                                                                                                                                                  ]
                                                                                                                                                                },
                                                                                                                                                                "conditions": {
                                                                                                                                                                  "type": "array",
                                                                                                                                                                  "items": {
                                                                                                                                                                    "type": "object",
                                                                                                                                                                    "additionalProperties": false,
                                                                                                                                                                    "properties": {
                                                                                                                                                                      "var": {
                                                                                                                                                                        "description": "Specifies a variable to check.",
                                                                                                                                                                        "type": [
                                                                                                                                                                          "number",
                                                                                                                                                                          "string"
                                                                                                                                                                        ]
                                                                                                                                                                      },
                                                                                                                                                                      "operator": {
                                                                                                                                                                        "description": "Specifies an operator.",
                                                                                                                                                                        "type": [
                                                                                                                                                                          "number",
                                                                                                                                                                          "string"
                                                                                                                                                                        ],
                                                                                                                                                                        "enum": [
                                                                                                                                                                          "=",
                                                                                                                                                                          "!=",
                                                                                                                                                                          "<=",
                                                                                                                                                                          ">=",
                                                                                                                                                                          ">",
                                                                                                                                                                          "<",
                                                                                                                                                                          "in",
                                                                                                                                                                          "not_in",
                                                                                                                                                                          "~",
                                                                                                                                                                          "~*",
                                                                                                                                                                          "!~",
                                                                                                                                                                          "!~*",
                                                                                                                                                                          "ip_range",
                                                                                                                                                                          "!ip_range",
                                                                                                                                                                          "dn_mask",
                                                                                                                                                                          "!dn_mask"
                                                                                                                                                                        ]
                                                                                                                                                                      },
                                                                                                                                                                      "val": {
                                                                                                                                                                        "description": "Specifies a value to check.",
                                                                                                                                                                        "type": [
                                                                                                                                                                          "number",
                                                                                                                                                                          "string"
                                                                                                                                                                        ]
                                                                                                                                                                      }
                                                                                                                                                                    },
                                                                                                                                                                    "required": [
                                                                                                                                                                      "var",
                                                                                                                                                                      "operator",
                                                                                                                                                                      "val"
                                                                                                                                                                    ]
                                                                                                                                                                  }
                                                                                                                                                                },
                                                                                                                                                                "fields": {
                                                                                                                                                                  "type": "array",
                                                                                                                                                                  "items": {
                                                                                                                                                                    "type": "object",
                                                                                                                                                                    "additionalProperties": false,
                                                                                                                                                                    "properties": {
                                                                                                                                                                      "key": {
                                                                                                                                                                        "type": [
                                                                                                                                                                          "number",
                                                                                                                                                                          "string"
                                                                                                                                                                        ]
                                                                                                                                                                      },
                                                                                                                                                                      "val": {
                                                                                                                                                                        "type": [
                                                                                                                                                                          "number",
                                                                                                                                                                          "string"
                                                                                                                                                                        ]
                                                                                                                                                                      }
                                                                                                                                                                    },
                                                                                                                                                                    "required": [
                                                                                                                                                                      "key",
                                                                                                                                                                      "val"
                                                                                                                                                                    ]
                                                                                                                                                                  }
                                                                                                                                                                }
                                                                                                                                                              },
                                                                                                                                                              "required": [
                                                                                                                                                                "name",
                                                                                                                                                                "message"
                                                                                                                                                              ]
                                                                                                                                                            }
                                                                                                                                                          }
                                                                                                                                                        },
                                                                                                                                                        "required": [
                                                                                                                                                          "enabled"
                                                                                                                                                        ],
                                                                                                                                                        "allOf": [
                                                                                                                                                          {
                                                                                                                                                            "if": {
                                                                                                                                                              "type": "object",
                                                                                                                                                              "required": [
                                                                                                                                                                "enabled"
                                                                                                                                                              ],
                                                                                                                                                              "properties": {
                                                                                                                                                                "enabled": {
                                                                                                                                                                  "const": false
                                                                                                                                                                }
                                                                                                                                                              }
                                                                                                                                                            },
                                                                                                                                                            "then": {
                                                                                                                                                              "required": []
                                                                                                                                                            },
                                                                                                                                                            "else": {
                                                                                                                                                              "required": [
                                                                                                                                                                "events"
                                                                                                                                                              ]
                                                                                                                                                            }
                                                                                                                                                          }
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    },
                                                                                                                                                    "required": [
                                                                                                                                                      "action"
                                                                                                                                                    ]
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "audit": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "enabled": {
                                                                                                                                                      "type": "boolean"
                                                                                                                                                    },
                                                                                                                                                    "events": {
                                                                                                                                                      "type": "array",
                                                                                                                                                      "items": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "additionalProperties": false,
                                                                                                                                                        "properties": {
                                                                                                                                                          "name": {
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "message": {
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "conditions": {
                                                                                                                                                            "type": "array",
                                                                                                                                                            "items": {
                                                                                                                                                              "type": "object",
                                                                                                                                                              "additionalProperties": false,
                                                                                                                                                              "properties": {
                                                                                                                                                                "var": {
                                                                                                                                                                  "description": "Specifies a variable to check.",
                                                                                                                                                                  "type": [
                                                                                                                                                                    "number",
                                                                                                                                                                    "string"
                                                                                                                                                                  ]
                                                                                                                                                                },
                                                                                                                                                                "operator": {
                                                                                                                                                                  "description": "Specifies an operator.",
                                                                                                                                                                  "type": [
                                                                                                                                                                    "number",
                                                                                                                                                                    "string"
                                                                                                                                                                  ],
                                                                                                                                                                  "enum": [
                                                                                                                                                                    "=",
                                                                                                                                                                    "!=",
                                                                                                                                                                    "<=",
                                                                                                                                                                    ">=",
                                                                                                                                                                    ">",
                                                                                                                                                                    "<",
                                                                                                                                                                    "in",
                                                                                                                                                                    "not_in",
                                                                                                                                                                    "~",
                                                                                                                                                                    "~*",
                                                                                                                                                                    "!~",
                                                                                                                                                                    "!~*",
                                                                                                                                                                    "ip_range",
                                                                                                                                                                    "!ip_range",
                                                                                                                                                                    "dn_mask",
                                                                                                                                                                    "!dn_mask"
                                                                                                                                                                  ]
                                                                                                                                                                },
                                                                                                                                                                "val": {
                                                                                                                                                                  "description": "Specifies a value to check.",
                                                                                                                                                                  "type": [
                                                                                                                                                                    "number",
                                                                                                                                                                    "string"
                                                                                                                                                                  ]
                                                                                                                                                                }
                                                                                                                                                              },
                                                                                                                                                              "required": [
                                                                                                                                                                "var",
                                                                                                                                                                "operator",
                                                                                                                                                                "val"
                                                                                                                                                              ]
                                                                                                                                                            }
                                                                                                                                                          },
                                                                                                                                                          "fields": {
                                                                                                                                                            "type": "array",
                                                                                                                                                            "items": {
                                                                                                                                                              "type": "object",
                                                                                                                                                              "additionalProperties": false,
                                                                                                                                                              "properties": {
                                                                                                                                                                "key": {
                                                                                                                                                                  "type": [
                                                                                                                                                                    "number",
                                                                                                                                                                    "string"
                                                                                                                                                                  ]
                                                                                                                                                                },
                                                                                                                                                                "val": {
                                                                                                                                                                  "type": [
                                                                                                                                                                    "number",
                                                                                                                                                                    "string"
                                                                                                                                                                  ]
                                                                                                                                                                }
                                                                                                                                                              },
                                                                                                                                                              "required": [
                                                                                                                                                                "key",
                                                                                                                                                                "val"
                                                                                                                                                              ]
                                                                                                                                                            }
                                                                                                                                                          }
                                                                                                                                                        },
                                                                                                                                                        "required": [
                                                                                                                                                          "name",
                                                                                                                                                          "message"
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    }
                                                                                                                                                  },
                                                                                                                                                  "required": [
                                                                                                                                                    "enabled"
                                                                                                                                                  ],
                                                                                                                                                  "allOf": [
                                                                                                                                                    {
                                                                                                                                                      "if": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "required": [
                                                                                                                                                          "enabled"
                                                                                                                                                        ],
                                                                                                                                                        "properties": {
                                                                                                                                                          "enabled": {
                                                                                                                                                            "const": false
                                                                                                                                                          }
                                                                                                                                                        }
                                                                                                                                                      },
                                                                                                                                                      "then": {
                                                                                                                                                        "required": []
                                                                                                                                                      },
                                                                                                                                                      "else": {
                                                                                                                                                        "required": [
                                                                                                                                                          "events"
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    }
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "required": [
                                                                                                                                                "action"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "audit": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "enabled": {
                                                                                                                                                "type": "boolean"
                                                                                                                                              },
                                                                                                                                              "events": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "name": {
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "message": {
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "conditions": {
                                                                                                                                                      "type": "array",
                                                                                                                                                      "items": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "additionalProperties": false,
                                                                                                                                                        "properties": {
                                                                                                                                                          "var": {
                                                                                                                                                            "description": "Specifies a variable to check.",
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "operator": {
                                                                                                                                                            "description": "Specifies an operator.",
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ],
                                                                                                                                                            "enum": [
                                                                                                                                                              "=",
                                                                                                                                                              "!=",
                                                                                                                                                              "<=",
                                                                                                                                                              ">=",
                                                                                                                                                              ">",
                                                                                                                                                              "<",
                                                                                                                                                              "in",
                                                                                                                                                              "not_in",
                                                                                                                                                              "~",
                                                                                                                                                              "~*",
                                                                                                                                                              "!~",
                                                                                                                                                              "!~*",
                                                                                                                                                              "ip_range",
                                                                                                                                                              "!ip_range",
                                                                                                                                                              "dn_mask",
                                                                                                                                                              "!dn_mask"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "val": {
                                                                                                                                                            "description": "Specifies a value to check.",
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          }
                                                                                                                                                        },
                                                                                                                                                        "required": [
                                                                                                                                                          "var",
                                                                                                                                                          "operator",
                                                                                                                                                          "val"
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    },
                                                                                                                                                    "fields": {
                                                                                                                                                      "type": "array",
                                                                                                                                                      "items": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "additionalProperties": false,
                                                                                                                                                        "properties": {
                                                                                                                                                          "key": {
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "val": {
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          }
                                                                                                                                                        },
                                                                                                                                                        "required": [
                                                                                                                                                          "key",
                                                                                                                                                          "val"
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    }
                                                                                                                                                  },
                                                                                                                                                  "required": [
                                                                                                                                                    "name",
                                                                                                                                                    "message"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "enabled"
                                                                                                                                            ],
                                                                                                                                            "allOf": [
                                                                                                                                              {
                                                                                                                                                "if": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "required": [
                                                                                                                                                    "enabled"
                                                                                                                                                  ],
                                                                                                                                                  "properties": {
                                                                                                                                                    "enabled": {
                                                                                                                                                      "const": false
                                                                                                                                                    }
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "then": {
                                                                                                                                                  "required": []
                                                                                                                                                },
                                                                                                                                                "else": {
                                                                                                                                                  "required": [
                                                                                                                                                    "events"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "required": [
                                                                                                                                          "action"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "audit": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "enabled": {
                                                                                                                                          "type": "boolean"
                                                                                                                                        },
                                                                                                                                        "events": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "name": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "message": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "conditions": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "var": {
                                                                                                                                                      "description": "Specifies a variable to check.",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "operator": {
                                                                                                                                                      "description": "Specifies an operator.",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ],
                                                                                                                                                      "enum": [
                                                                                                                                                        "=",
                                                                                                                                                        "!=",
                                                                                                                                                        "<=",
                                                                                                                                                        ">=",
                                                                                                                                                        ">",
                                                                                                                                                        "<",
                                                                                                                                                        "in",
                                                                                                                                                        "not_in",
                                                                                                                                                        "~",
                                                                                                                                                        "~*",
                                                                                                                                                        "!~",
                                                                                                                                                        "!~*",
                                                                                                                                                        "ip_range",
                                                                                                                                                        "!ip_range",
                                                                                                                                                        "dn_mask",
                                                                                                                                                        "!dn_mask"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "val": {
                                                                                                                                                      "description": "Specifies a value to check.",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    }
                                                                                                                                                  },
                                                                                                                                                  "required": [
                                                                                                                                                    "var",
                                                                                                                                                    "operator",
                                                                                                                                                    "val"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "fields": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "key": {
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "val": {
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    }
                                                                                                                                                  },
                                                                                                                                                  "required": [
                                                                                                                                                    "key",
                                                                                                                                                    "val"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "name",
                                                                                                                                              "message"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "enabled"
                                                                                                                                      ],
                                                                                                                                      "allOf": [
                                                                                                                                        {
                                                                                                                                          "if": {
                                                                                                                                            "type": "object",
                                                                                                                                            "required": [
                                                                                                                                              "enabled"
                                                                                                                                            ],
                                                                                                                                            "properties": {
                                                                                                                                              "enabled": {
                                                                                                                                                "const": false
                                                                                                                                              }
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "then": {
                                                                                                                                            "required": []
                                                                                                                                          },
                                                                                                                                          "else": {
                                                                                                                                            "required": [
                                                                                                                                              "events"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "required": [
                                                                                                                                    "action"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "audit": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "enabled": {
                                                                                                                                    "type": "boolean"
                                                                                                                                  },
                                                                                                                                  "events": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "name": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "message": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "conditions": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "var": {
                                                                                                                                                "description": "Specifies a variable to check.",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "operator": {
                                                                                                                                                "description": "Specifies an operator.",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ],
                                                                                                                                                "enum": [
                                                                                                                                                  "=",
                                                                                                                                                  "!=",
                                                                                                                                                  "<=",
                                                                                                                                                  ">=",
                                                                                                                                                  ">",
                                                                                                                                                  "<",
                                                                                                                                                  "in",
                                                                                                                                                  "not_in",
                                                                                                                                                  "~",
                                                                                                                                                  "~*",
                                                                                                                                                  "!~",
                                                                                                                                                  "!~*",
                                                                                                                                                  "ip_range",
                                                                                                                                                  "!ip_range",
                                                                                                                                                  "dn_mask",
                                                                                                                                                  "!dn_mask"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "val": {
                                                                                                                                                "description": "Specifies a value to check.",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "var",
                                                                                                                                              "operator",
                                                                                                                                              "val"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "fields": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "key": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "val": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "key",
                                                                                                                                              "val"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "name",
                                                                                                                                        "message"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "enabled"
                                                                                                                                ],
                                                                                                                                "allOf": [
                                                                                                                                  {
                                                                                                                                    "if": {
                                                                                                                                      "type": "object",
                                                                                                                                      "required": [
                                                                                                                                        "enabled"
                                                                                                                                      ],
                                                                                                                                      "properties": {
                                                                                                                                        "enabled": {
                                                                                                                                          "const": false
                                                                                                                                        }
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "then": {
                                                                                                                                      "required": []
                                                                                                                                    },
                                                                                                                                    "else": {
                                                                                                                                      "required": [
                                                                                                                                        "events"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "required": [
                                                                                                                              "action"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "audit": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "enabled": {
                                                                                                                              "type": "boolean"
                                                                                                                            },
                                                                                                                            "events": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "name": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "message": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "conditions": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "var": {
                                                                                                                                          "description": "Specifies a variable to check.",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "operator": {
                                                                                                                                          "description": "Specifies an operator.",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ],
                                                                                                                                          "enum": [
                                                                                                                                            "=",
                                                                                                                                            "!=",
                                                                                                                                            "<=",
                                                                                                                                            ">=",
                                                                                                                                            ">",
                                                                                                                                            "<",
                                                                                                                                            "in",
                                                                                                                                            "not_in",
                                                                                                                                            "~",
                                                                                                                                            "~*",
                                                                                                                                            "!~",
                                                                                                                                            "!~*",
                                                                                                                                            "ip_range",
                                                                                                                                            "!ip_range",
                                                                                                                                            "dn_mask",
                                                                                                                                            "!dn_mask"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "val": {
                                                                                                                                          "description": "Specifies a value to check.",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "var",
                                                                                                                                        "operator",
                                                                                                                                        "val"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "fields": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "key": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "val": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "key",
                                                                                                                                        "val"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "name",
                                                                                                                                  "message"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "enabled"
                                                                                                                          ],
                                                                                                                          "allOf": [
                                                                                                                            {
                                                                                                                              "if": {
                                                                                                                                "type": "object",
                                                                                                                                "required": [
                                                                                                                                  "enabled"
                                                                                                                                ],
                                                                                                                                "properties": {
                                                                                                                                  "enabled": {
                                                                                                                                    "const": false
                                                                                                                                  }
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "then": {
                                                                                                                                "required": []
                                                                                                                              },
                                                                                                                              "else": {
                                                                                                                                "required": [
                                                                                                                                  "events"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            }
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "required": [
                                                                                                                        "action"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "audit": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "enabled": {
                                                                                                                        "type": "boolean"
                                                                                                                      },
                                                                                                                      "events": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "name": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "message": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "conditions": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "var": {
                                                                                                                                    "description": "Specifies a variable to check.",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "operator": {
                                                                                                                                    "description": "Specifies an operator.",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ],
                                                                                                                                    "enum": [
                                                                                                                                      "=",
                                                                                                                                      "!=",
                                                                                                                                      "<=",
                                                                                                                                      ">=",
                                                                                                                                      ">",
                                                                                                                                      "<",
                                                                                                                                      "in",
                                                                                                                                      "not_in",
                                                                                                                                      "~",
                                                                                                                                      "~*",
                                                                                                                                      "!~",
                                                                                                                                      "!~*",
                                                                                                                                      "ip_range",
                                                                                                                                      "!ip_range",
                                                                                                                                      "dn_mask",
                                                                                                                                      "!dn_mask"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "val": {
                                                                                                                                    "description": "Specifies a value to check.",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "var",
                                                                                                                                  "operator",
                                                                                                                                  "val"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "fields": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "key": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "val": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "key",
                                                                                                                                  "val"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "name",
                                                                                                                            "message"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "enabled"
                                                                                                                    ],
                                                                                                                    "allOf": [
                                                                                                                      {
                                                                                                                        "if": {
                                                                                                                          "type": "object",
                                                                                                                          "required": [
                                                                                                                            "enabled"
                                                                                                                          ],
                                                                                                                          "properties": {
                                                                                                                            "enabled": {
                                                                                                                              "const": false
                                                                                                                            }
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "then": {
                                                                                                                          "required": []
                                                                                                                        },
                                                                                                                        "else": {
                                                                                                                          "required": [
                                                                                                                            "events"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      }
                                                                                                                    ]
                                                                                                                  }
                                                                                                                },
                                                                                                                "required": [
                                                                                                                  "action"
                                                                                                                ]
                                                                                                              }
                                                                                                            },
                                                                                                            "audit": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "enabled": {
                                                                                                                  "type": "boolean"
                                                                                                                },
                                                                                                                "events": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "name": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "message": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "conditions": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "var": {
                                                                                                                              "description": "Specifies a variable to check.",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "operator": {
                                                                                                                              "description": "Specifies an operator.",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ],
                                                                                                                              "enum": [
                                                                                                                                "=",
                                                                                                                                "!=",
                                                                                                                                "<=",
                                                                                                                                ">=",
                                                                                                                                ">",
                                                                                                                                "<",
                                                                                                                                "in",
                                                                                                                                "not_in",
                                                                                                                                "~",
                                                                                                                                "~*",
                                                                                                                                "!~",
                                                                                                                                "!~*",
                                                                                                                                "ip_range",
                                                                                                                                "!ip_range",
                                                                                                                                "dn_mask",
                                                                                                                                "!dn_mask"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "val": {
                                                                                                                              "description": "Specifies a value to check.",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "var",
                                                                                                                            "operator",
                                                                                                                            "val"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "fields": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "key": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "val": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "key",
                                                                                                                            "val"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "name",
                                                                                                                      "message"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "enabled"
                                                                                                              ],
                                                                                                              "allOf": [
                                                                                                                {
                                                                                                                  "if": {
                                                                                                                    "type": "object",
                                                                                                                    "required": [
                                                                                                                      "enabled"
                                                                                                                    ],
                                                                                                                    "properties": {
                                                                                                                      "enabled": {
                                                                                                                        "const": false
                                                                                                                      }
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "then": {
                                                                                                                    "required": []
                                                                                                                  },
                                                                                                                  "else": {
                                                                                                                    "required": [
                                                                                                                      "events"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                }
                                                                                                              ]
                                                                                                            }
                                                                                                          },
                                                                                                          "required": [
                                                                                                            "action"
                                                                                                          ]
                                                                                                        }
                                                                                                      },
                                                                                                      "audit": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "enabled": {
                                                                                                            "type": "boolean"
                                                                                                          },
                                                                                                          "events": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "name": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "message": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "conditions": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "var": {
                                                                                                                        "description": "Specifies a variable to check.",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "operator": {
                                                                                                                        "description": "Specifies an operator.",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ],
                                                                                                                        "enum": [
                                                                                                                          "=",
                                                                                                                          "!=",
                                                                                                                          "<=",
                                                                                                                          ">=",
                                                                                                                          ">",
                                                                                                                          "<",
                                                                                                                          "in",
                                                                                                                          "not_in",
                                                                                                                          "~",
                                                                                                                          "~*",
                                                                                                                          "!~",
                                                                                                                          "!~*",
                                                                                                                          "ip_range",
                                                                                                                          "!ip_range",
                                                                                                                          "dn_mask",
                                                                                                                          "!dn_mask"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "val": {
                                                                                                                        "description": "Specifies a value to check.",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "var",
                                                                                                                      "operator",
                                                                                                                      "val"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                },
                                                                                                                "fields": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "key": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "val": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "key",
                                                                                                                      "val"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "name",
                                                                                                                "message"
                                                                                                              ]
                                                                                                            }
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "enabled"
                                                                                                        ],
                                                                                                        "allOf": [
                                                                                                          {
                                                                                                            "if": {
                                                                                                              "type": "object",
                                                                                                              "required": [
                                                                                                                "enabled"
                                                                                                              ],
                                                                                                              "properties": {
                                                                                                                "enabled": {
                                                                                                                  "const": false
                                                                                                                }
                                                                                                              }
                                                                                                            },
                                                                                                            "then": {
                                                                                                              "required": []
                                                                                                            },
                                                                                                            "else": {
                                                                                                              "required": [
                                                                                                                "events"
                                                                                                              ]
                                                                                                            }
                                                                                                          }
                                                                                                        ]
                                                                                                      }
                                                                                                    },
                                                                                                    "required": [
                                                                                                      "action"
                                                                                                    ]
                                                                                                  }
                                                                                                },
                                                                                                "audit": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "enabled": {
                                                                                                      "type": "boolean"
                                                                                                    },
                                                                                                    "events": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "name": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "message": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "conditions": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "var": {
                                                                                                                  "description": "Specifies a variable to check.",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "operator": {
                                                                                                                  "description": "Specifies an operator.",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ],
                                                                                                                  "enum": [
                                                                                                                    "=",
                                                                                                                    "!=",
                                                                                                                    "<=",
                                                                                                                    ">=",
                                                                                                                    ">",
                                                                                                                    "<",
                                                                                                                    "in",
                                                                                                                    "not_in",
                                                                                                                    "~",
                                                                                                                    "~*",
                                                                                                                    "!~",
                                                                                                                    "!~*",
                                                                                                                    "ip_range",
                                                                                                                    "!ip_range",
                                                                                                                    "dn_mask",
                                                                                                                    "!dn_mask"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "val": {
                                                                                                                  "description": "Specifies a value to check.",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "var",
                                                                                                                "operator",
                                                                                                                "val"
                                                                                                              ]
                                                                                                            }
                                                                                                          },
                                                                                                          "fields": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "key": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "val": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "key",
                                                                                                                "val"
                                                                                                              ]
                                                                                                            }
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "name",
                                                                                                          "message"
                                                                                                        ]
                                                                                                      }
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "enabled"
                                                                                                  ],
                                                                                                  "allOf": [
                                                                                                    {
                                                                                                      "if": {
                                                                                                        "type": "object",
                                                                                                        "required": [
                                                                                                          "enabled"
                                                                                                        ],
                                                                                                        "properties": {
                                                                                                          "enabled": {
                                                                                                            "const": false
                                                                                                          }
                                                                                                        }
                                                                                                      },
                                                                                                      "then": {
                                                                                                        "required": []
                                                                                                      },
                                                                                                      "else": {
                                                                                                        "required": [
                                                                                                          "events"
                                                                                                        ]
                                                                                                      }
                                                                                                    }
                                                                                                  ]
                                                                                                }
                                                                                              },
                                                                                              "required": [
                                                                                                "action"
                                                                                              ]
                                                                                            }
                                                                                          },
                                                                                          "audit": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "enabled": {
                                                                                                "type": "boolean"
                                                                                              },
                                                                                              "events": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "name": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "message": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "conditions": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "var": {
                                                                                                            "description": "Specifies a variable to check.",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "operator": {
                                                                                                            "description": "Specifies an operator.",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ],
                                                                                                            "enum": [
                                                                                                              "=",
                                                                                                              "!=",
                                                                                                              "<=",
                                                                                                              ">=",
                                                                                                              ">",
                                                                                                              "<",
                                                                                                              "in",
                                                                                                              "not_in",
                                                                                                              "~",
                                                                                                              "~*",
                                                                                                              "!~",
                                                                                                              "!~*",
                                                                                                              "ip_range",
                                                                                                              "!ip_range",
                                                                                                              "dn_mask",
                                                                                                              "!dn_mask"
                                                                                                            ]
                                                                                                          },
                                                                                                          "val": {
                                                                                                            "description": "Specifies a value to check.",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "var",
                                                                                                          "operator",
                                                                                                          "val"
                                                                                                        ]
                                                                                                      }
                                                                                                    },
                                                                                                    "fields": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "key": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "val": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "key",
                                                                                                          "val"
                                                                                                        ]
                                                                                                      }
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "name",
                                                                                                    "message"
                                                                                                  ]
                                                                                                }
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "enabled"
                                                                                            ],
                                                                                            "allOf": [
                                                                                              {
                                                                                                "if": {
                                                                                                  "type": "object",
                                                                                                  "required": [
                                                                                                    "enabled"
                                                                                                  ],
                                                                                                  "properties": {
                                                                                                    "enabled": {
                                                                                                      "const": false
                                                                                                    }
                                                                                                  }
                                                                                                },
                                                                                                "then": {
                                                                                                  "required": []
                                                                                                },
                                                                                                "else": {
                                                                                                  "required": [
                                                                                                    "events"
                                                                                                  ]
                                                                                                }
                                                                                              }
                                                                                            ]
                                                                                          }
                                                                                        },
                                                                                        "required": [
                                                                                          "action"
                                                                                        ]
                                                                                      }
                                                                                    },
                                                                                    "audit": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "enabled": {
                                                                                          "type": "boolean"
                                                                                        },
                                                                                        "events": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "name": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "message": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "conditions": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "var": {
                                                                                                      "description": "Specifies a variable to check.",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "operator": {
                                                                                                      "description": "Specifies an operator.",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ],
                                                                                                      "enum": [
                                                                                                        "=",
                                                                                                        "!=",
                                                                                                        "<=",
                                                                                                        ">=",
                                                                                                        ">",
                                                                                                        "<",
                                                                                                        "in",
                                                                                                        "not_in",
                                                                                                        "~",
                                                                                                        "~*",
                                                                                                        "!~",
                                                                                                        "!~*",
                                                                                                        "ip_range",
                                                                                                        "!ip_range",
                                                                                                        "dn_mask",
                                                                                                        "!dn_mask"
                                                                                                      ]
                                                                                                    },
                                                                                                    "val": {
                                                                                                      "description": "Specifies a value to check.",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "var",
                                                                                                    "operator",
                                                                                                    "val"
                                                                                                  ]
                                                                                                }
                                                                                              },
                                                                                              "fields": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "key": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "val": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "key",
                                                                                                    "val"
                                                                                                  ]
                                                                                                }
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "name",
                                                                                              "message"
                                                                                            ]
                                                                                          }
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "enabled"
                                                                                      ],
                                                                                      "allOf": [
                                                                                        {
                                                                                          "if": {
                                                                                            "type": "object",
                                                                                            "required": [
                                                                                              "enabled"
                                                                                            ],
                                                                                            "properties": {
                                                                                              "enabled": {
                                                                                                "const": false
                                                                                              }
                                                                                            }
                                                                                          },
                                                                                          "then": {
                                                                                            "required": []
                                                                                          },
                                                                                          "else": {
                                                                                            "required": [
                                                                                              "events"
                                                                                            ]
                                                                                          }
                                                                                        }
                                                                                      ]
                                                                                    }
                                                                                  },
                                                                                  "required": [
                                                                                    "action"
                                                                                  ]
                                                                                }
                                                                              },
                                                                              "audit": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "enabled": {
                                                                                    "type": "boolean"
                                                                                  },
                                                                                  "events": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "name": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "message": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "conditions": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "var": {
                                                                                                "description": "Specifies a variable to check.",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "operator": {
                                                                                                "description": "Specifies an operator.",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ],
                                                                                                "enum": [
                                                                                                  "=",
                                                                                                  "!=",
                                                                                                  "<=",
                                                                                                  ">=",
                                                                                                  ">",
                                                                                                  "<",
                                                                                                  "in",
                                                                                                  "not_in",
                                                                                                  "~",
                                                                                                  "~*",
                                                                                                  "!~",
                                                                                                  "!~*",
                                                                                                  "ip_range",
                                                                                                  "!ip_range",
                                                                                                  "dn_mask",
                                                                                                  "!dn_mask"
                                                                                                ]
                                                                                              },
                                                                                              "val": {
                                                                                                "description": "Specifies a value to check.",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "var",
                                                                                              "operator",
                                                                                              "val"
                                                                                            ]
                                                                                          }
                                                                                        },
                                                                                        "fields": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "key": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "val": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "key",
                                                                                              "val"
                                                                                            ]
                                                                                          }
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "name",
                                                                                        "message"
                                                                                      ]
                                                                                    }
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "enabled"
                                                                                ],
                                                                                "allOf": [
                                                                                  {
                                                                                    "if": {
                                                                                      "type": "object",
                                                                                      "required": [
                                                                                        "enabled"
                                                                                      ],
                                                                                      "properties": {
                                                                                        "enabled": {
                                                                                          "const": false
                                                                                        }
                                                                                      }
                                                                                    },
                                                                                    "then": {
                                                                                      "required": []
                                                                                    },
                                                                                    "else": {
                                                                                      "required": [
                                                                                        "events"
                                                                                      ]
                                                                                    }
                                                                                  }
                                                                                ]
                                                                              }
                                                                            },
                                                                            "required": [
                                                                              "action"
                                                                            ]
                                                                          }
                                                                        },
                                                                        "audit": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "enabled": {
                                                                              "type": "boolean"
                                                                            },
                                                                            "events": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "name": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "message": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "conditions": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "var": {
                                                                                          "description": "Specifies a variable to check.",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "operator": {
                                                                                          "description": "Specifies an operator.",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ],
                                                                                          "enum": [
                                                                                            "=",
                                                                                            "!=",
                                                                                            "<=",
                                                                                            ">=",
                                                                                            ">",
                                                                                            "<",
                                                                                            "in",
                                                                                            "not_in",
                                                                                            "~",
                                                                                            "~*",
                                                                                            "!~",
                                                                                            "!~*",
                                                                                            "ip_range",
                                                                                            "!ip_range",
                                                                                            "dn_mask",
                                                                                            "!dn_mask"
                                                                                          ]
                                                                                        },
                                                                                        "val": {
                                                                                          "description": "Specifies a value to check.",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "var",
                                                                                        "operator",
                                                                                        "val"
                                                                                      ]
                                                                                    }
                                                                                  },
                                                                                  "fields": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "key": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "val": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "key",
                                                                                        "val"
                                                                                      ]
                                                                                    }
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "name",
                                                                                  "message"
                                                                                ]
                                                                              }
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "enabled"
                                                                          ],
                                                                          "allOf": [
                                                                            {
                                                                              "if": {
                                                                                "type": "object",
                                                                                "required": [
                                                                                  "enabled"
                                                                                ],
                                                                                "properties": {
                                                                                  "enabled": {
                                                                                    "const": false
                                                                                  }
                                                                                }
                                                                              },
                                                                              "then": {
                                                                                "required": []
                                                                              },
                                                                              "else": {
                                                                                "required": [
                                                                                  "events"
                                                                                ]
                                                                              }
                                                                            }
                                                                          ]
                                                                        }
                                                                      },
                                                                      "required": [
                                                                        "action"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "audit": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "enabled": {
                                                                        "type": "boolean"
                                                                      },
                                                                      "events": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "name": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "message": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "conditions": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "var": {
                                                                                    "description": "Specifies a variable to check.",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "operator": {
                                                                                    "description": "Specifies an operator.",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ],
                                                                                    "enum": [
                                                                                      "=",
                                                                                      "!=",
                                                                                      "<=",
                                                                                      ">=",
                                                                                      ">",
                                                                                      "<",
                                                                                      "in",
                                                                                      "not_in",
                                                                                      "~",
                                                                                      "~*",
                                                                                      "!~",
                                                                                      "!~*",
                                                                                      "ip_range",
                                                                                      "!ip_range",
                                                                                      "dn_mask",
                                                                                      "!dn_mask"
                                                                                    ]
                                                                                  },
                                                                                  "val": {
                                                                                    "description": "Specifies a value to check.",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "var",
                                                                                  "operator",
                                                                                  "val"
                                                                                ]
                                                                              }
                                                                            },
                                                                            "fields": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "key": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "val": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "key",
                                                                                  "val"
                                                                                ]
                                                                              }
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "name",
                                                                            "message"
                                                                          ]
                                                                        }
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "enabled"
                                                                    ],
                                                                    "allOf": [
                                                                      {
                                                                        "if": {
                                                                          "type": "object",
                                                                          "required": [
                                                                            "enabled"
                                                                          ],
                                                                          "properties": {
                                                                            "enabled": {
                                                                              "const": false
                                                                            }
                                                                          }
                                                                        },
                                                                        "then": {
                                                                          "required": []
                                                                        },
                                                                        "else": {
                                                                          "required": [
                                                                            "events"
                                                                          ]
                                                                        }
                                                                      }
                                                                    ]
                                                                  }
                                                                },
                                                                "required": [
                                                                  "action"
                                                                ]
                                                              }
                                                            },
                                                            "audit": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "enabled": {
                                                                  "type": "boolean"
                                                                },
                                                                "events": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "name": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "message": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "conditions": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "var": {
                                                                              "description": "Specifies a variable to check.",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "operator": {
                                                                              "description": "Specifies an operator.",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ],
                                                                              "enum": [
                                                                                "=",
                                                                                "!=",
                                                                                "<=",
                                                                                ">=",
                                                                                ">",
                                                                                "<",
                                                                                "in",
                                                                                "not_in",
                                                                                "~",
                                                                                "~*",
                                                                                "!~",
                                                                                "!~*",
                                                                                "ip_range",
                                                                                "!ip_range",
                                                                                "dn_mask",
                                                                                "!dn_mask"
                                                                              ]
                                                                            },
                                                                            "val": {
                                                                              "description": "Specifies a value to check.",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "var",
                                                                            "operator",
                                                                            "val"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "fields": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "key": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "val": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "key",
                                                                            "val"
                                                                          ]
                                                                        }
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "name",
                                                                      "message"
                                                                    ]
                                                                  }
                                                                }
                                                              },
                                                              "required": [
                                                                "enabled"
                                                              ],
                                                              "allOf": [
                                                                {
                                                                  "if": {
                                                                    "type": "object",
                                                                    "required": [
                                                                      "enabled"
                                                                    ],
                                                                    "properties": {
                                                                      "enabled": {
                                                                        "const": false
                                                                      }
                                                                    }
                                                                  },
                                                                  "then": {
                                                                    "required": []
                                                                  },
                                                                  "else": {
                                                                    "required": [
                                                                      "events"
                                                                    ]
                                                                  }
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": [
                                                            "action"
                                                          ]
                                                        }
                                                      },
                                                      "audit": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "enabled": {
                                                            "type": "boolean"
                                                          },
                                                          "events": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "name": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "message": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "conditions": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "var": {
                                                                        "description": "Specifies a variable to check.",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "operator": {
                                                                        "description": "Specifies an operator.",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ],
                                                                        "enum": [
                                                                          "=",
                                                                          "!=",
                                                                          "<=",
                                                                          ">=",
                                                                          ">",
                                                                          "<",
                                                                          "in",
                                                                          "not_in",
                                                                          "~",
                                                                          "~*",
                                                                          "!~",
                                                                          "!~*",
                                                                          "ip_range",
                                                                          "!ip_range",
                                                                          "dn_mask",
                                                                          "!dn_mask"
                                                                        ]
                                                                      },
                                                                      "val": {
                                                                        "description": "Specifies a value to check.",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "var",
                                                                      "operator",
                                                                      "val"
                                                                    ]
                                                                  }
                                                                },
                                                                "fields": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "key": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "val": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "key",
                                                                      "val"
                                                                    ]
                                                                  }
                                                                }
                                                              },
                                                              "required": [
                                                                "name",
                                                                "message"
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "enabled"
                                                        ],
                                                        "allOf": [
                                                          {
                                                            "if": {
                                                              "type": "object",
                                                              "required": [
                                                                "enabled"
                                                              ],
                                                              "properties": {
                                                                "enabled": {
                                                                  "const": false
                                                                }
                                                              }
                                                            },
                                                            "then": {
                                                              "required": []
                                                            },
                                                            "else": {
                                                              "required": [
                                                                "events"
                                                              ]
                                                            }
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "action"
                                                    ]
                                                  }
                                                },
                                                "audit": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "enabled": {
                                                      "type": "boolean"
                                                    },
                                                    "events": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "name": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "message": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "conditions": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "var": {
                                                                  "description": "Specifies a variable to check.",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "operator": {
                                                                  "description": "Specifies an operator.",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ],
                                                                  "enum": [
                                                                    "=",
                                                                    "!=",
                                                                    "<=",
                                                                    ">=",
                                                                    ">",
                                                                    "<",
                                                                    "in",
                                                                    "not_in",
                                                                    "~",
                                                                    "~*",
                                                                    "!~",
                                                                    "!~*",
                                                                    "ip_range",
                                                                    "!ip_range",
                                                                    "dn_mask",
                                                                    "!dn_mask"
                                                                  ]
                                                                },
                                                                "val": {
                                                                  "description": "Specifies a value to check.",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                }
                                                              },
                                                              "required": [
                                                                "var",
                                                                "operator",
                                                                "val"
                                                              ]
                                                            }
                                                          },
                                                          "fields": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "key": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "val": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                }
                                                              },
                                                              "required": [
                                                                "key",
                                                                "val"
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "name",
                                                          "message"
                                                        ]
                                                      }
                                                    }
                                                  },
                                                  "required": [
                                                    "enabled"
                                                  ],
                                                  "allOf": [
                                                    {
                                                      "if": {
                                                        "type": "object",
                                                        "required": [
                                                          "enabled"
                                                        ],
                                                        "properties": {
                                                          "enabled": {
                                                            "const": false
                                                          }
                                                        }
                                                      },
                                                      "then": {
                                                        "required": []
                                                      },
                                                      "else": {
                                                        "required": [
                                                          "events"
                                                        ]
                                                      }
                                                    }
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "action"
                                              ]
                                            }
                                          },
                                          "audit": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "enabled": {
                                                "type": "boolean"
                                              },
                                              "events": {
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "name": {
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "message": {
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "conditions": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "var": {
                                                            "description": "Specifies a variable to check.",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "operator": {
                                                            "description": "Specifies an operator.",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ],
                                                            "enum": [
                                                              "=",
                                                              "!=",
                                                              "<=",
                                                              ">=",
                                                              ">",
                                                              "<",
                                                              "in",
                                                              "not_in",
                                                              "~",
                                                              "~*",
                                                              "!~",
                                                              "!~*",
                                                              "ip_range",
                                                              "!ip_range",
                                                              "dn_mask",
                                                              "!dn_mask"
                                                            ]
                                                          },
                                                          "val": {
                                                            "description": "Specifies a value to check.",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "var",
                                                          "operator",
                                                          "val"
                                                        ]
                                                      }
                                                    },
                                                    "fields": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "key": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "val": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "key",
                                                          "val"
                                                        ]
                                                      }
                                                    }
                                                  },
                                                  "required": [
                                                    "name",
                                                    "message"
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "enabled"
                                            ],
                                            "allOf": [
                                              {
                                                "if": {
                                                  "type": "object",
                                                  "required": [
                                                    "enabled"
                                                  ],
                                                  "properties": {
                                                    "enabled": {
                                                      "const": false
                                                    }
                                                  }
                                                },
                                                "then": {
                                                  "required": []
                                                },
                                                "else": {
                                                  "required": [
                                                    "events"
                                                  ]
                                                }
                                              }
                                            ]
                                          }
                                        },
                                        "allOf": [
                                          {
                                            "if": {
                                              "type": "object",
                                              "required": [
                                                ".."
                                              ],
                                              "properties": {
                                                "..": {
                                                  "properties": {
                                                    "..": {
                                                      "type": "object",
                                                      "required": [
                                                        ".."
                                                      ],
                                                      "properties": {
                                                        "..": {
                                                          "type": "object",
                                                          "required": [
                                                            "server_streaming"
                                                          ],
                                                          "properties": {
                                                            "server_streaming": {
                                                              "pattern": ".+"
                                                            }
                                                          }
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            },
                                            "else": {
                                              "not": {
                                                "required": [
                                                  "streaming"
                                                ]
                                              }
                                            }
                                          }
                                        ]
                                      }
                                    },
                                    "response_chain_properties": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "error_state_code": {
                                          "type": "integer"
                                        },
                                        "failed_check_state_code": {
                                          "type": "integer"
                                        },
                                        "max_buffer_size": {
                                          "type": [
                                            "number",
                                            "string"
                                          ],
                                          "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                        },
                                        "max_inmemory_size": {
                                          "type": [
                                            "number",
                                            "string"
                                          ],
                                          "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                        },
                                        "skip_on_error_stage_before": {
                                          "type": "string",
                                          "enum": [
                                            "on",
                                            "off"
                                          ]
                                        },
                                        "use_post_processor": {
                                          "type": "boolean"
                                        },
                                        "resp_gen_modify": {
                                          "description": "Add possibility to override backend response",
                                          "type": "string",
                                          "enum": [
                                            "on",
                                            "off"
                                          ]
                                        },
                                        "trace_config": {
                                          "type": "object",
                                          "additionalProperties": false,
                                          "properties": {
                                            "enableAllActions": {
                                              "description": "enable tracing of all actions in chains",
                                              "type": "boolean"
                                            },
                                            "enableAllChains": {
                                              "description": "enable tracing of all actions in child chains",
                                              "type": "boolean"
                                            },
                                            "mode": {
                                              "description": "Enable or disable tracing at this level.",
                                              "type": "object",
                                              "additionalProperties": false,
                                              "properties": {
                                                "enabled": {
                                                  "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ],
                                                  "enum": [
                                                    "on",
                                                    "off",
                                                    "var_based"
                                                  ]
                                                },
                                                "var": {
                                                  "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                }
                                              }
                                            },
                                            "spanAttributes": {
                                              "type": "array",
                                              "items": {
                                                "type": "object",
                                                "additionalProperties": false,
                                                "properties": {
                                                  "name": {
                                                    "description": "name of attribute",
                                                    "type": [
                                                      "number",
                                                      "string"
                                                    ]
                                                  },
                                                  "value": {
                                                    "description": "value of attribute, can contain variables",
                                                    "type": [
                                                      "number",
                                                      "string"
                                                    ]
                                                  }
                                                }
                                              }
                                            },
                                            "spanName": {
                                              "description": "Specify name of span",
                                              "type": [
                                                "number",
                                                "string"
                                              ]
                                            },
                                            "enableSocketsTracing": {
                                              "description": "Enable or disable socket tracing, by default enabled",
                                              "type": "boolean"
                                            }
                                          }
                                        },
                                        "requiredActionOneOf": {
                                          "type": "object",
                                          "additionalProperties": false,
                                          "properties": {
                                            "decisionType": {
                                              "type": [
                                                "number",
                                                "string"
                                              ],
                                              "enum": [
                                                "WARN",
                                                "BLOCK"
                                              ]
                                            },
                                            "action": {
                                              "type": "array",
                                              "items": {
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              }
                                            }
                                          }
                                        }
                                      }
                                    },
                                    "message_error_processor": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "proto_config": {
                                          "type": "object",
                                          "additionalProperties": false,
                                          "properties": {
                                            "type": {
                                              "type": [
                                                "number",
                                                "string"
                                              ],
                                              "enum": [
                                                "proto_file"
                                              ]
                                            },
                                            "generate": {
                                              "type": [
                                                "number",
                                                "string"
                                              ],
                                              "enum": [
                                                "data"
                                              ]
                                            },
                                            "path": {
                                              "type": [
                                                "number",
                                                "string"
                                              ],
                                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                            },
                                            "class": {
                                              "type": [
                                                "number",
                                                "string"
                                              ]
                                            },
                                            "message": {
                                              "type": [
                                                "number",
                                                "string"
                                              ]
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "path",
                                            "message"
                                          ]
                                        },
                                        "pattern_file": {
                                          "description": "Specifies rule file which describes how to fill pattern file.",
                                          "type": "string",
                                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                        },
                                        "rules_file": {
                                          "description": "Specifies rule file which describes how to fill pattern file. Default - rules file from system resources.",
                                          "type": "string",
                                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                        }
                                      }
                                    }
                                  },
                                  "allOf": [
                                    {
                                      "if": {
                                        "type": "object",
                                        "required": [
                                          "request_chains"
                                        ],
                                        "properties": {
                                          "request_chains": {
                                            "pattern": ".+"
                                          }
                                        }
                                      },
                                      "else": {
                                        "not": {
                                          "required": [
                                            "request_chain_properties"
                                          ]
                                        }
                                      }
                                    },
                                    {
                                      "if": {
                                        "type": "object",
                                        "required": [
                                          "response_chains"
                                        ],
                                        "properties": {
                                          "response_chains": {
                                            "pattern": ".+"
                                          }
                                        }
                                      },
                                      "else": {
                                        "not": {
                                          "required": [
                                            "response_chain_properties"
                                          ]
                                        }
                                      }
                                    },
                                    {
                                      "if": {
                                        "type": "object",
                                        "required": [
                                          ".."
                                        ],
                                        "properties": {
                                          "..": {
                                            "properties": {
                                              "..": {
                                                "type": "object",
                                                "required": [
                                                  "server_streaming"
                                                ],
                                                "properties": {
                                                  "server_streaming": {
                                                    "pattern": ".+"
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      },
                                      "else": {
                                        "not": {
                                          "required": [
                                            "message_error_processor"
                                          ]
                                        }
                                      }
                                    }
                                  ]
                                }
                              }
                            },
                            "content_type": {
                              "type": "string"
                            },
                            "connect_timeout": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                            },
                            "read_timeout": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                            },
                            "write_timeout": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                            }
                          },
                          "required": [
                            "type",
                            "action",
                            "stage",
                            "content_type"
                          ]
                        }
                      },
                      "nohttp": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "WsFrameTypeFilter",
                                "DataSizeLimitFilter"
                              ]
                            },
                            "action": {
                              "type": "string",
                              "enum": [
                                "disconnect",
                                "block",
                                "ignore"
                              ]
                            },
                            "stage": {
                              "type": "string",
                              "enum": [
                                "REQ",
                                "RESP"
                              ]
                            },
                            "frame_types": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "DATA",
                                  "TEXT",
                                  "BINARY",
                                  "CONTROL",
                                  "PING",
                                  "PONG",
                                  "CLOSE"
                                ]
                              }
                            },
                            "rule": {
                              "type": "string",
                              "enum": [
                                "ALLOWED",
                                "DENIED"
                              ]
                            },
                            "limit": {
                              "description": "Specifies the limit size for message data. If limit exceeded, session disconnect will occur.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^([0-9]+)|([0-9]+[km]{1})$"
                            },
                            "decompression": {
                              "description": "Defines whether to decompress the message before the limit check.",
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "type",
                            "action",
                            "stage"
                          ]
                        }
                      }
                    }
                  }
                }
              }
            },
            "required": [
              "id",
              "url"
            ]
          }
        },
        "service_http_mq_proxy": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "Specifies the unique id for the service.",
                "type": [
                  "number",
                  "string"
                ],
                "pattern": "^[^.\\/\\\\()]+$"
              },
              "name": {
                "description": "Human readable Service identifier printed in log messages",
                "type": [
                  "number",
                  "string"
                ]
              },
              "profile_version": {
                "description": "Specifies profile version of this service",
                "type": [
                  "number",
                  "string"
                ]
              },
              "description": {
                "type": [
                  "number",
                  "string"
                ]
              },
              "listen": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "address": {
                      "description": "specifies ip/hostname on which the socket will listen.",
                      "type": [
                        "number",
                        "string"
                      ]
                    },
                    "port": {
                      "description": "specifies port on which the socket will listen",
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 65535
                    },
                    "allow_http2": {
                      "description": "Allow to accept http2 connection. Default - false",
                      "type": "boolean"
                    },
                    "proxy_protocol": {
                      "description": "Accept proxy protocol. Http requests will not be handler with this flag. Default - false",
                      "type": "boolean"
                    },
                    "http2_only": {
                      "description": "Allow to pass only http2 protocol connection. Default - off",
                      "type": "string",
                      "enum": [
                        "on",
                        "off"
                      ]
                    },
                    "ssl": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "sspi": {
                          "description": "Enables GOST TLS mode. Default id false.",
                          "type": "boolean"
                        },
                        "client_verify_local_crl_only": {
                          "description": "GOST mode. Specifies whether to check the certificate status locally (otherwise check online). Default is \"off\" (online check).",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "buffer_size": {
                          "description": "GOST mode. Specifies payload length in TLS record (min 1024, max 16384). Default is 16384 bytes.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^([0-9]+[kK]{1})|([0-9]+)$"
                        },
                        "certificate": {
                          "description": "specifies name of the certificate wich will be used. Certificate must be placed in \"resource\" directory.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "certificate_key": {
                          "description": "specifies name of the certificate key wich will be used. Certificate key must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "password_file": {
                          "description": "specifies name of the password file with secret keys for \"certificate_key\". Password file must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "client_certificate": {
                          "description": "specifies name of the client certificate wich will be used. Client Certificate must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_client": {
                          "description": "Enables verification of client certificates. Default - no",
                          "type": "string"
                        },
                        "ocsp": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "enabled": {
                              "description": "Enables OCSP validation of the client certificate chain",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "depth": {
                              "description": "Specify depth of certificate validation.",
                              "type": "integer",
                              "minimum": 1
                            },
                            "mode": {
                              "description": "Specify mode. In strict mode request will be blocked in case unsuccessfull certiticate checking, in flexible mode - request will not be blocked. Strict by default.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "strict",
                                "flexible"
                              ]
                            },
                            "cache": {
                              "description": "Sets name and size of the cache that stores client certificates status for OCSP validation. The cache is shared between all worker processes",
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "size": {
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                },
                                "lifetime": {
                                  "description": "Specifies cache lifetime. 3600 seconds by default",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                                }
                              },
                              "required": [
                                "name",
                                "size"
                              ]
                            },
                            "use_cert_responder": {
                              "description": "Defines use or not responder from certificate(if specified). False by default",
                              "type": "boolean"
                            },
                            "responder_timeout": {
                              "description": "Specifies responder timeout. 60000 milliseconds by default",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                            },
                            "responders": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "regex;(.+)": {
                                  "type": "array",
                                  "uniqueItems": true,
                                  "items": {
                                    "description": "Specifies the URL of the OCSP responder specified in the “Authority Information Access” certificate extension for validation of client certificates. Only http:// OCSP responders are supported",
                                    "type": [
                                      "number",
                                      "string"
                                    ],
                                    "pattern": "^(?:http:\\/\\/).+$"
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "enabled",
                            "depth"
                          ]
                        },
                        "verify_dn_trusted_path": {
                          "description": "Turn on verification of client dn. Use this file to match all regex dn from this file with dn of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_client_error_code": {
                          "description": "Defines the response code if verification client certificate failed. Default value is \"495\"(400)",
                          "type": "integer"
                        },
                        "verify_fingerprint_trusted_path": {
                          "description": "Turn on verification of client fingerprint. Use this file to match all fingerprints from file with fingerprint of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_depth": {
                          "description": "Sets the verification depth in the client certificates chain. Default - 1",
                          "type": "integer"
                        },
                        "protocols": {
                          "description": "specifies used ciphers. The default value is \"LSv1 TLSv1.1 TLSv1.2\" for RSA, and \"TLSv1\" for GOST",
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string"
                          }
                        },
                        "ciphers": {
                          "description": "specifies group of ciphes. The default value is \"HIGH:!aNULL:!MD5\".",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "prefix": {
                                "type": "string",
                                "enum": [
                                  "!",
                                  "+",
                                  "-"
                                ]
                              },
                              "value": {
                                "type": "array",
                                "uniqueItems": true,
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "DEFAULT",
                                    "COMPLEMENTOFDEFAULT",
                                    "ALL",
                                    "COMPLEMENTOFALL",
                                    "HIGH",
                                    "MEDIUM",
                                    "LOW",
                                    "EXP",
                                    "EXPORT",
                                    "EXPORT40",
                                    "EXPORT56",
                                    "eNULL",
                                    "NULL",
                                    "aNULL",
                                    "kRSA",
                                    "RSA",
                                    "kDHr",
                                    "kDHd",
                                    "kDH",
                                    "kDHE",
                                    "kEDH",
                                    "DHE",
                                    "EDH",
                                    "ADH",
                                    "DH",
                                    "kECDHr",
                                    "kECDHe",
                                    "kECDH",
                                    "kECDHE",
                                    "kEECDH",
                                    "ECDHE",
                                    "EECDH",
                                    "AECDH",
                                    "ECDH",
                                    "aRSA",
                                    "aDSS",
                                    "DSS",
                                    "aDH",
                                    "aECDH",
                                    "aECDSA",
                                    "ECDSA",
                                    "kFZA",
                                    "aFZA",
                                    "eFZA",
                                    "FZA",
                                    "TLSv1.2",
                                    "TLSv1",
                                    "SSLv3",
                                    "SSLv2",
                                    "AES128",
                                    "AES256",
                                    "AES",
                                    "AESGCM",
                                    "CAMELLIA128",
                                    "CAMELLIA256",
                                    "CAMELLIA",
                                    "3DES",
                                    "DES",
                                    "RC4",
                                    "RC2",
                                    "IDEA",
                                    "SEED",
                                    "MD5",
                                    "SHA1",
                                    "SHA",
                                    "SHA256",
                                    "SHA384",
                                    "aGOST",
                                    "aGOST01",
                                    "aGOST94",
                                    "kGOST",
                                    "GOST94",
                                    "GOST89MAC",
                                    "PSK",
                                    "SUITEB128",
                                    "SUITEB128ONLY",
                                    "SUITEB192",
                                    "@STRENGTH",
                                    "NULL-SHA256"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "value"
                            ]
                          }
                        },
                        "ciphers_str": {
                          "description": "specifies string of ciphers.",
                          "type": "string"
                        },
                        "dhparam": {
                          "description": "Specifies a file with DH parameters for DHE ciphers and enable usage of DHE ciphers.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "session_timeout": {
                          "description": "specifies timeout of the ssl session. The default value is \"10m\"",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                        },
                        "session_cache": {
                          "description": "specifies cache size for ssl session. The default value evaluates automatically.",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "off",
                                "none",
                                "builtin",
                                "shared"
                              ]
                            },
                            "name": {
                              "type": "string"
                            },
                            "size": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "reject_handshake": {
                          "description": "specifies whether reject all SSL handshake with a different server name (strict SNI check). Default is false.",
                          "type": "boolean"
                        },
                        "stapling": {
                          "description": "enables or disables stapling of OCSP responses by the server. Default - false.",
                          "type": "boolean"
                        },
                        "stapling_file": {
                          "description": "when set, the stapled OCSP response will be taken from the specified file instead of querying the OCSP responder specified in the server certificate.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "stapling_responder": {
                          "description": "overrides the URL of the OCSP responder specified in the “Authority Information Access” certificate extension.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "stapling_verify": {
                          "description": "enables or disables verification of OCSP responses by the server. For verification to work, the certificate of the server certificate issuer, the root certificate, and all intermediate certificates should be configured as trusted using the trusted_certificate directive. Default - false.",
                          "type": "boolean"
                        },
                        "trusted_certificate": {
                          "description": "specifies a file with trusted CA certificates in the PEM format used to verify client certificates and OCSP responses if stapling is enabled.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        }
                      },
                      "required": [
                        "certificate"
                      ],
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling_verify"
                            ],
                            "properties": {
                              "stapling_verify": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "then": {
                            "required": [
                              "trusted_certificate"
                            ]
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "verify_dn_trusted_path"
                            ],
                            "properties": {
                              "verify_dn_trusted_path": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "verify_client_error_code"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "verify_fingerprint_trusted_path"
                            ],
                            "properties": {
                              "verify_fingerprint_trusted_path": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "verify_client_error_code"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "ciphers_str"
                            ],
                            "properties": {
                              "ciphers_str": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "ciphers"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "ciphers"
                            ],
                            "properties": {
                              "ciphers": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "ciphers_str"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "certificate"
                            ],
                            "properties": {
                              "certificate": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_file"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_responder"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_verify"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling_verify"
                            ],
                            "properties": {
                              "stapling_verify": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "trusted_certificate"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              },
              "hostname": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "url": {
                "description": "Defines the relative URL by which the service will work.",
                "type": "string",
                "pattern": "^\\^?\\/.*\\$?$"
              },
              "allowed_queries": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "method": {
                      "type": "string",
                      "enum": [
                        "get",
                        "head",
                        "post",
                        "put",
                        "options",
                        "trace",
                        "patch",
                        "delete"
                      ]
                    },
                    "decodeUrl": {
                      "description": "By default mds use url-decoded request parameters",
                      "type": "boolean"
                    },
                    "strict_params_check": {
                      "description": "False by default. Allows to block undescribed params and paramless requests.",
                      "type": "boolean"
                    },
                    "undescribed": {
                      "description": "False by default when no params, true when params present. Deny or pass request with undescribed request query params",
                      "type": "boolean"
                    },
                    "params": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "pattern": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^((?!\\(\\?i\\)|\\(\\?-i\\)).)*$"
                          }
                        },
                        "required": [
                          "name",
                          "pattern"
                        ]
                      }
                    }
                  },
                  "required": [
                    "method"
                  ]
                }
              },
              "ibmmq_qmname_name": {
                "description": "Defines the name of the queue manager.",
                "type": "string"
              },
              "ibmmq_channel_name": {
                "description": "Defines the channel name for connecting to the queue manager.",
                "type": "string"
              },
              "ibmmq_connection_name": {
                "description": "Defines the host ant port for the connection.",
                "type": "string"
              },
              "ibmmq_queue_name": {
                "description": "Defines the name of the local queue.",
                "type": "string"
              },
              "optional": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "log_level": {
                    "type": [
                      "number",
                      "string"
                    ],
                    "enum": [
                      "debug",
                      "info",
                      "notice",
                      "warn",
                      "error",
                      "crit",
                      "alert",
                      "off"
                    ]
                  },
                  "group_access_log": {
                    "description": "Specifies whether group or not the access log by status codes (2xx, 3xx, 4xx, 5xx, 404, 413, 429, 499, 500). Default is false.",
                    "type": "boolean"
                  },
                  "log_format": {
                    "description": "Specifies which format to use.",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "internal": {
                    "description": "Defines if service should be accessible only locally.",
                    "type": "boolean"
                  },
                  "pipelined_requests": {
                    "description": "Enables/disable pipelined requests, by default - on",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "http2_only": {
                    "description": "Allow to pass only http2 protocol connection. Default - off",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "keepalive_time": {
                    "description": "Limits the maximum time during which requests can be processed through one keep-alive connection. After this time is reached, the connection is closed following the subsequent request processing. By default -  timeout 1h",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "session_cache": {
                    "description": "specifies cache size for ssl session. The default value evaluates automatically.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "off",
                          "none",
                          "builtin",
                          "shared"
                        ]
                      },
                      "name": {
                        "type": "string"
                      },
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "ibmmq_charset_encoding": {
                    "description": "Coded Character Set IDentifier",
                    "type": "integer"
                  },
                  "ibmmq_max_msg_length": {
                    "description": "Specifies the size of the transfered message. The default value is \"4194304\".",
                    "type": "string"
                  },
                  "ibmmq_persistent": {
                    "description": "Specifies the persistence attribute. The default value is \"off\".",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "ibmmq_with_uow": {
                    "description": "Specifies the transactionality attribute. The default value is \"off\".",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "ibmmq_work_mode": {
                    "description": "Specifies blocking or non-blocking mode for mq client. 'lock' by default.",
                    "type": "string",
                    "enum": [
                      "lock",
                      "nolock"
                    ]
                  },
                  "ibmmq_tcp_check_enabled": {
                    "description": "Specifies TCP checking before making connection to MQ manager. 'on' by default.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "ibmmq_tcp_check_timeout": {
                    "description": "Defines TCP checking timeout.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "ibmmq_mca_username": {
                    "description": "Specifies the user name.",
                    "type": "string"
                  },
                  "ibmmq_mca_password": {
                    "description": "Specifies the user password.",
                    "type": "string"
                  },
                  "ibmmq_sslcertificate": {
                    "description": "Specifies the certificate.",
                    "type": "string",
                    "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                  },
                  "ibmmq_sslcertificate_key": {
                    "description": "Specifies the label of the SSL certificate.",
                    "type": "string"
                  },
                  "ibmmq_credential_file": {
                    "description": "Specifies path to file with user credentials",
                    "type": "string",
                    "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                  },
                  "ibmmq_cipher_spec": {
                    "description": "Specifies the cipher.",
                    "type": "string",
                    "enum": [
                      "ECDHE_ECDSA_3DES_EDE_CBC_SHA256",
                      "ECDHE_RSA_AES_128_CBC_SHA256",
                      "ECDHE_RSA_AES_128_GCM_SHA256",
                      "ECDHE_RSA_AES_256_CBC_SHA384",
                      "ECDHE_RSA_AES_256_GCM_SHA384",
                      "ECDHE_ECDSA_NULL_SHA256",
                      "ECDHE_ECDSA_RC4_128_SHA256",
                      "ECDHE_RSA_3DES_EDE_CBC_SHA256",
                      "ECDHE_ECDSA_AES_128_GCM_SHA256",
                      "ECDHE_ECDSA_AES_256_CBC_SHA384",
                      "ECDHE_RSA_NULL_SHA256",
                      "ECDHE_RSA_RC4_128_SHA256",
                      "FIPS_WITH_DES_CBC_SHA",
                      "NULL_MD5",
                      "NULL_SHA",
                      "RC4_MD5_EXPORT",
                      "RC4_MD5_US",
                      "TLS_RSA_WITH_3DES_EDE_CBC_SHA",
                      "TLS_RSA_WITH_AES_128_CBC_SHA",
                      "TLS_RSA_WITH_AES_128_CBC_SHA256",
                      "TLS_RSA_WITH_AES_128_GCM_SHA256",
                      "TLS_RSA_WITH_AES_256_CBC_SHA",
                      "TLS_RSA_WITH_AES_256_CBC_SHA256",
                      "TLS_RSA_WITH_AES_256_CBC_SHA384",
                      "TLS_RSA_WITH_DES_CBC_SHA",
                      "TLS_RSA_WITH_NULL_SHA256",
                      "TLS_RSA_WITH_RC4_128_SHA256"
                    ]
                  },
                  "set_variable": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "value": {
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "required": [
                        "name",
                        "value"
                      ]
                    }
                  },
                  "opentelemetry": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "tracing": {
                        "description": "Defines parameters of Opentelemetry Tracing",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "mode": {
                            "description": "Enable or disable tracing at this level",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "enabled": {
                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "on",
                                  "off",
                                  "var_based"
                                ]
                              },
                              "var": {
                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            },
                            "allOf": [
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "enabled"
                                  ],
                                  "properties": {
                                    "enabled": {
                                      "const": "var_based"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "var"
                                  ]
                                }
                              }
                            ]
                          },
                          "trace_context": {
                            "description": "Specifies how to propagate traceparent/tracestate headers.   Default - ignore",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "extract",
                              "inject",
                              "propagate",
                              "ignore"
                            ]
                          },
                          "span_name": {
                            "description": "Defines the name of span. By default - name of location, can be contain variables",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "span_attr": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "description": "name of attribute",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "value": {
                                  "description": "value of attribute, can contain variables",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            ""
                          ],
                          "properties": {
                            "": {
                              "properties": {
                                "system": {
                                  "type": "object",
                                  "required": [
                                    "system"
                                  ],
                                  "properties": {
                                    "system": {},
                                    "optional": {
                                      "type": "object",
                                      "required": [
                                        "opentelemetry"
                                      ],
                                      "properties": {
                                        "opentelemetry": {
                                          "pattern": ".+"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "tracing"
                            ]
                          }
                        }
                      }
                    ]
                  },
                  "exclude_req_stat": {
                    "description": "Excludes location request stats monitoring",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "exclude_resp_stat": {
                    "description": "Excludes location resp stats monitoring",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "limit_req": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enable limit req module",
                        "type": "boolean"
                      },
                      "rate": {
                        "description": "The count of requests which will be handled per time interval.",
                        "type": "number"
                      },
                      "rate_interval": {
                        "description": "Time interval for request rate measuring. Specify 's' for second and 'm' for minute. By default is 's'. Hint - if you need '0.5r/s', you can specify '30r/m'.",
                        "type": "string",
                        "enum": [
                          "s",
                          "m"
                        ]
                      },
                      "size": {
                        "description": "Shared memory zone used to store the state of each IP address and how often it has accessed a request limited URL. The default value is \"10m\"",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})$"
                      },
                      "burst": {
                        "description": "Defines how many requests a client can make in excess of the rate. The default value is \"0\"",
                        "type": "integer"
                      },
                      "cpu_limit": {
                        "description": "Defines maximum CPU load percentage. After exceeding limit, all incoming connections will be declined.",
                        "type": "integer"
                      },
                      "mem_limit": {
                        "description": "Defines maximum memory load percentage. After exceeding limit, all incoming connections will be declined.",
                        "type": "integer"
                      },
                      "target": {
                        "description": "Specifies a target for check. You can use predefined values 'src_ip' and 'service' or any nginx variables using prefix '$' (e.g. $server_port).",
                        "type": "string",
                        "pattern": "^((src_ip)|(service)|(request_method)|(\\$[a-z_]+))$"
                      },
                      "policy_type": {
                        "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                        "type": "string",
                        "enum": [
                          "allow",
                          "forbid"
                        ]
                      },
                      "exclude_ip": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "nodelay": {
                        "description": "default false",
                        "type": "boolean"
                      },
                      "forbid_action": {
                        "description": "Specifies location on which will be redirected",
                        "type": "string"
                      },
                      "status_code": {
                        "description": "Defines the response code if the limit is exceeded. Default value is \"413\".",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "dry_run": {
                        "description": "Enables dry run mode. Default is off.",
                        "type": "boolean"
                      },
                      "condition": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "condition_var": {
                            "type": "string",
                            "pattern": "^\\$.+$"
                          },
                          "condition_value": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ifall",
                              "ifany",
                              "if"
                            ]
                          },
                          "expression": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "variable": {
                                  "type": "string",
                                  "pattern": "^\\$.+$"
                                },
                                "operation": {
                                  "type": "string",
                                  "enum": [
                                    ">=",
                                    "=",
                                    ">",
                                    "<",
                                    "<=",
                                    "!=",
                                    "~",
                                    "~*",
                                    "!~",
                                    "!~*",
                                    "-f",
                                    "!-f",
                                    "-d",
                                    "!-d",
                                    "-e",
                                    "!-e",
                                    "-x",
                                    "!-x"
                                  ]
                                },
                                "value": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "variable"
                              ]
                            }
                          }
                        },
                        "required": [
                          "condition_var",
                          "condition_value",
                          "type"
                        ]
                      }
                    },
                    "required": [
                      "enabled",
                      "target"
                    ]
                  },
                  "limit_requests": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enable limit req module",
                        "type": "boolean"
                      },
                      "status_code": {
                        "description": "Defines the response code if the limit is exceeded. Default value is \"413\".",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "dry_run": {
                        "description": "Enables dry run mode. Default is off.",
                        "type": "boolean"
                      },
                      "limit_req": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "rate": {
                              "description": "The count of requests which will be handled per time interval.",
                              "type": "number"
                            },
                            "rate_interval": {
                              "description": "Time interval for request rate measuring. Specify 's' for second and 'm' for minute. By default is 's'. Hint - if you need '0.5r/s', you can specify '30r/m'.",
                              "type": "string",
                              "enum": [
                                "s",
                                "m"
                              ]
                            },
                            "size": {
                              "description": "Shared memory zone used to store the state of each IP address and how often it has accessed a request limited URL. The default value is \"10m\"",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^([0-9]+[kKmM]{1})$"
                            },
                            "burst": {
                              "description": "Defines how many requests a client can make in excess of the rate. The default value is \"0\"",
                              "type": "integer"
                            },
                            "cpu_limit": {
                              "description": "Defines maximum CPU load percentage. After exceeding limit, all incoming connections will be declined.",
                              "type": "integer"
                            },
                            "mem_limit": {
                              "description": "Defines maximum memory load percentage. After exceeding limit, all incoming connections will be declined.",
                              "type": "integer"
                            },
                            "target": {
                              "description": "Specifies a target for check. You can use predefined values 'src_ip' and 'service' or any nginx variables using prefix '$' (e.g. $server_port).",
                              "type": "string",
                              "pattern": "^((src_ip)|(service)|(request_method)|(\\$[a-z_]+))$"
                            },
                            "policy_type": {
                              "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                              "type": "string",
                              "enum": [
                                "allow",
                                "forbid"
                              ]
                            },
                            "exclude_ip": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                              }
                            },
                            "nodelay": {
                              "description": "default false",
                              "type": "boolean"
                            },
                            "forbid_action": {
                              "description": "Specifies location on which will be redirected",
                              "type": "string"
                            },
                            "condition": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "condition_var": {
                                  "type": "string",
                                  "pattern": "^\\$.+$"
                                },
                                "condition_value": {
                                  "type": "string"
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "ifall",
                                    "ifany",
                                    "if"
                                  ]
                                },
                                "expression": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "variable": {
                                        "type": "string",
                                        "pattern": "^\\$.+$"
                                      },
                                      "operation": {
                                        "type": "string",
                                        "enum": [
                                          ">=",
                                          "=",
                                          ">",
                                          "<",
                                          "<=",
                                          "!=",
                                          "~",
                                          "~*",
                                          "!~",
                                          "!~*",
                                          "-f",
                                          "!-f",
                                          "-d",
                                          "!-d",
                                          "-e",
                                          "!-e",
                                          "-x",
                                          "!-x"
                                        ]
                                      },
                                      "value": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "variable"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "condition_var",
                                "condition_value",
                                "type"
                              ]
                            }
                          },
                          "required": [
                            "target"
                          ]
                        }
                      }
                    },
                    "required": [
                      "enabled",
                      "limit_req"
                    ]
                  },
                  "robot_mitigation": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enables defense against HTTP robot attacks.",
                        "type": "boolean"
                      },
                      "blacklist": {
                        "description": "Means if a client has failed for N times, this client will be added into blacklist. Default 5",
                        "type": "integer"
                      },
                      "mode": {
                        "description": "Robot Mitigation will return a user-defined js code or predefined flash file to the client. Default js",
                        "type": "string",
                        "enum": [
                          "js",
                          "swf"
                        ]
                      },
                      "timeout": {
                        "description": "Sets the time for the next challenge to be initiated, in seconds. Default 60",
                        "type": "integer"
                      },
                      "ajax": {
                        "description": "This directive sets if challenge for ajax requests based on XMLRequest header. Default off",
                        "type": "boolean"
                      },
                      "policy_type": {
                        "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                        "type": "string",
                        "enum": [
                          "allow",
                          "forbid"
                        ]
                      },
                      "exclude_ip": {
                        "description": "Specifies the IP addresses, which will be excluded from whitelist",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "ua_whitelist": {
                        "description": "This directives specifies the User-Agent whitelist.",
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "ip_behavior": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "sample_base": {
                        "description": "Specifies the number of the request for a valid sample",
                        "type": "number"
                      },
                      "size": {
                        "description": "Size means how much memory will use by zone. The default value is \"10m\"",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})$"
                      },
                      "sample_cycle": {
                        "description": "Specifies the cyclog of the sampling, unit could be s (for second) and m (for minute).",
                        "type": "string",
                        "pattern": "^([0-9]+[mMsS]{1})$"
                      },
                      "sensitive": {
                        "description": "Specifies sensitive locations. If a location is defined as a sensitive location, all the resources under this location will be treated as sensitive. Default false",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "sample_base",
                      "size",
                      "sample_cycle"
                    ]
                  },
                  "cookie_poisoning": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enables monitoring the Set-Cookies headers and the cookie values in the response from server side.",
                        "type": "boolean"
                      },
                      "action": {
                        "description": "This directive specifies the action when cookie values are detected changed.  Default block",
                        "type": "string",
                        "pattern": "^block|pass|remove|blacklist,[0-9]+$"
                      },
                      "log": {
                        "type": "boolean"
                      },
                      "policy_type": {
                        "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                        "type": "string",
                        "enum": [
                          "allow",
                          "forbid"
                        ]
                      },
                      "exclude_ip": {
                        "description": "Specifies the IP addresses, which will be excluded from whitelist",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "include_ip": {
                        "description": "Specifies the IP addresses, which will be included to whitelist",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "ua_whitelist": {
                        "description": "This directives specifies the User-Agent whitelist.",
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "gzip": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enables response compression by gzip method.",
                        "type": "boolean"
                      },
                      "optional": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "level": {
                            "description": "Sets the compression level. The default value is \"5\".",
                            "type": "integer",
                            "enum": [
                              1,
                              2,
                              3,
                              4,
                              5,
                              6,
                              7,
                              8,
                              9
                            ]
                          },
                          "types": {
                            "description": "Sets the mime-types for which compression is applied. The default value is \"text/html\".",
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "buffer_count": {
                            "description": "Sets the count of buffers in wich the response will be placed. The default value is \"32\".",
                            "type": "integer"
                          },
                          "buffer_size": {
                            "description": "Sets the buffer size in wich the response will be placed. The default value is memory page size.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "exclude": {
                            "description": "Sets the list of the User-Agent specified by regular expressions for which compression will be disabled.",
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "min_length": {
                            "description": "Sets the minimum length of the response for which compression will be applied. The default value is \"20\".",
                            "type": "integer"
                          },
                          "http_version": {
                            "description": "Specifies the minimum version for the request necessary for the response compression. The default value is \"1.0\"",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              1.0,
                              1.1
                            ]
                          },
                          "proxied": {
                            "description": "Enables or disables gzipping of responses for proxied requests depending on the request and response.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              false,
                              "expired",
                              "no-cache",
                              "no-store",
                              "private",
                              "no_last_modified",
                              "no_etag",
                              "auth",
                              "any"
                            ]
                          },
                          "vary": {
                            "description": "Enables or disables inserting the 'Vary: Accept-Encoding' response header field if the directives gzip, gzip_static, or gunzip are active.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              true,
                              false
                            ]
                          },
                          "static": {
                            "description": "Enables or disables checking the existence of precompressed files. With the \"always\" value, gzipped file is used in all cases, without checking if the client supports it. Default - off",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              true,
                              false,
                              "always"
                            ]
                          }
                        }
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "limit_conn": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enable limit conn module",
                        "type": "boolean"
                      },
                      "count": {
                        "description": "The count of connections which will be handled.",
                        "type": "number"
                      },
                      "size": {
                        "description": "Shared memory zone used to store the state of each target and how often it has create connection. The default value is \"10m\"",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})$"
                      },
                      "target": {
                        "description": "Specifies a target for check.",
                        "type": "string"
                      },
                      "status_code": {
                        "description": "Defines the response code if the limit is exceeded. Default value is \"503\".",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "dry_run": {
                        "description": "Enables dry run mode. Default is off.",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "enabled",
                      "count",
                      "target"
                    ]
                  },
                  "async_io": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "directio_threshold": {
                        "description": "Enables the use of the O_DIRECT flag (FreeBSD, Linux), the F_NOCACHE flag (macOS), or the directio() function (Solaris), when reading files that are larger than or equal to the specified size.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "thread_pool_id": {
                        "description": "Defines thread pool to use by id. If the thread_pool_id is omitted, the pool with the name default is used.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "write": {
                        "description": "Specifies whether async_io is used for writing files.",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "directio_threshold"
                    ]
                  },
                  "log_masking_rules": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "log_type": {
                          "description": "Which log type will be masked",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "event",
                            "security",
                            "all"
                          ]
                        },
                        "object": {
                          "description": "Specifies in which part of data masking will be maked",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "request_header",
                            "response_header",
                            "request_body",
                            "response_body",
                            "request_cookie",
                            "response_cookie"
                          ]
                        },
                        "cookie": {
                          "description": "Individual cookie name wich will be masked",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "header": {
                          "description": "Header name which will be masked",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "mask_symbol": {
                          "description": "Specifies which symbol will be used on replacement",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "."
                        },
                        "expression": {
                          "description": "Search pattern",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "replace_group": {
                          "description": "Specifies group number in expression which will be used for replacement for request or response body. If 0 - replacing full match string",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^[0-9]*$"
                        },
                        "replace_all": {
                          "description": "Replace all occurences or first. By default only first occurence replacing",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "exclusion": {
                          "description": "Define exlcusion from masking in all object with this type, default false",
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "object"
                      ]
                    }
                  },
                  "http2": {
                    "description": "Define http2 specific parameters",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "body_preread_size": {
                        "description": "Sets the size of the buffer per each request in which the request body may be saved before it is started to be processed. By default - 64k",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "chunk_size": {
                        "description": "Sets the maximum size of chunks into which the response body is sliced. A too low value results in higher overhead. A too high value impairs prioritization due to HOL blocking. By default - 8k",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "max_concurrent_pushes": {
                        "description": "Limits the maximum number of concurrent push requests in a connection. By default - 10",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+)$"
                      },
                      "max_concurrent_streams": {
                        "description": "Sets the maximum number of concurrent HTTP/2 streams in a connection. By default - 128",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+)$"
                      },
                      "push_preload": {
                        "description": "Enables automatic conversion of preload links specified in the “Link” response header fields into push requests. By default - off",
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "pushes": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "push_parent": {
                            "description": "Cancels the effect of the push directives inherited from the previous configuration level. By default off",
                            "type": "string",
                            "enum": [
                              "on",
                              "off"
                            ]
                          },
                          "push_list": {
                            "description": "List of Pre-emptively sends (pushes) a request to the specified uri along with the response to the original request. Only relative URIs with absolute path will be processed",
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    }
                  },
                  "log_type": {
                    "description": "Specifies logging mode for sowa-nginx. Default mode - file.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "kafka": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "group": {
                              "description": "Specifies which group of logs will use current settings.",
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "system",
                                  "error",
                                  "access"
                                ]
                              }
                            },
                            "id": {
                              "description": "Specifies client.id.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "broker": {
                              "description": "Initial list of brokers as a host:port separated by comma.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "topic": {
                              "description": "Specifies topic name.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^\\S*$"
                            },
                            "protocol": {
                              "description": "Specifies connection protocol. Plaintext by default.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "plaintext",
                                "ssl"
                              ]
                            },
                            "certificate": {
                              "description": "Specifies ssl.certificate.location",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "ca": {
                              "description": "Specifies ssl.ca.location.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "key": {
                              "description": "Specifies ssl.key.location.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "ciphers": {
                              "description": "Specifies ssl.cipher.suites. Same as default ssl ciphers.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "compression_codec": {
                              "description": "Compression codec to use for compressing message sets.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "none",
                                "gzip",
                                "snappy",
                                "lz4",
                                "zstd"
                              ]
                            },
                            "compression_level": {
                              "description": "Compression level parameter for algorithm selected by configuration property compression.codec. Higher values will result in better compression at the cost of more CPU usage.",
                              "type": "integer",
                              "minimum": -1,
                              "maximum": 12
                            },
                            "log_level": {
                              "description": "Logging level (syslog(3) levels).",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "debug": {
                              "description": "A comma-separated list of debug contexts to enable.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "max_messages": {
                              "description": "Maximum number of messages batched in one MessageSet.",
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 1000000
                            },
                            "pattern_file": {
                              "description": "Template file with custom log structure.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "escape": {
                              "description": "Defines if you need to escape variables used in pattern file.",
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "broker",
                            "topic"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "certificate"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "ca"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "key"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ciphers"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      },
                      "syslog": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "group": {
                              "description": "Specifies which group of logs will use current settings.",
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "system",
                                  "error",
                                  "access"
                                ]
                              }
                            },
                            "log_host": {
                              "description": "Specifies host for remote logging to syslog.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "log_port": {
                              "description": "Specifies port for remote logging to syslog. Default port - 514.",
                              "type": [
                                "number",
                                "string"
                              ]
                            }
                          }
                        }
                      },
                      "file": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "group": {
                              "description": "Specifies which group of logs will use current settings.",
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "system",
                                  "error",
                                  "access"
                                ]
                              }
                            }
                          }
                        }
                      },
                      "security": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Enables logging security security events (XSD, JSON, WSDL and other validators). False by default.",
                            "type": "boolean"
                          },
                          "threads_count": {
                            "description": "Specifies count of threads for thread pool, used for sending security events to syslog. Default is 16",
                            "type": "integer"
                          },
                          "hostname": {
                            "description": "Specifies hostname to dispaly in syslog event. Default is current hostname.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "appname": {
                            "description": "Specifies application name to dispaly in syslog event. Default is \"sowa-security\".",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "facility": {
                            "description": "Specifies facility for syslog event. Default is USER.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "KERN",
                              "USER",
                              "MAIL",
                              "DAEMON",
                              "AUTH",
                              "SYSLOG",
                              "LPR",
                              "NEWS",
                              "UUCP",
                              "CRON",
                              "AUTHPRIV",
                              "FTP",
                              "NTP",
                              "AUDIT",
                              "ALERT",
                              "CLOCK",
                              "LOCAL0",
                              "LOCAL1",
                              "LOCAL2",
                              "LOCAL3",
                              "LOCAL4",
                              "LOCAL5",
                              "LOCAL6",
                              "LOCAL7"
                            ]
                          },
                          "severity": {
                            "description": "Specifies severity for syslog event. Default is INFORMATIONAL.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "EMERGENCY",
                              "ALERT",
                              "CRITICAL",
                              "ERROR",
                              "WARNING",
                              "NOTICE",
                              "INFORMATIONAL",
                              "DEBUG"
                            ]
                          },
                          "target_host": {
                            "description": "Specifies host to send syslog event. Default is \"127.0.0.1\"",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "target_port": {
                            "description": "Specifies port to send syslog event. Default is 514.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 65535
                          },
                          "protocol": {
                            "description": "Specifies used protocol to send syslog event. Default is UDP.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "UDP",
                              "TCP"
                            ]
                          },
                          "msg_format": {
                            "description": "Specifies message format to send syslog event. Default is RFC_3164",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "RFC_3164",
                              "RFC_5424",
                              "RFC_5425"
                            ]
                          }
                        }
                      }
                    }
                  },
                  "healthcheck_dynamic": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "initial_state_param_file": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "manual_state_var_refresh_interval": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                      },
                      "endpoints": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "url": {
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "response": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "code": {
                                  "description": "Specifies an array of error codes by which templates will be generated.",
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  }
                                },
                                "pattern_file": {
                                  "description": "Specifies pattern file which will be used as response body.",
                                  "type": "string",
                                  "enum": [
                                    "hc_pattern_default.json",
                                    "hc_pattern_profile_default.json",
                                    "hc_pattern_service_default.json"
                                  ]
                                },
                                "custom_pattern_file": {
                                  "description": "Specifies rule file which describes how to fill pattern file.",
                                  "type": "string",
                                  "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                },
                                "rules_file": {
                                  "description": "Specifies rule file which describes how to fill pattern file. Default - rules file from system resources.",
                                  "type": "string",
                                  "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                },
                                "content_type": {
                                  "description": "Specifies content type for response header. Default - none.",
                                  "type": "string"
                                }
                              }
                            },
                            "upstream_check_type": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "ANY_UPSTREAM_UP",
                                "ALL_UPSTREAM_UP",
                                "ANY_UPSTREAM_UP_OR_DRAIN",
                                "ALL_UPSTREAM_UP_OR_DRAIN"
                              ]
                            },
                            "service_id": {
                              "description": "Binded service id",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "upstream_filter": {
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "disable_access_log": {
                              "description": "Disable writing access log, by default -false",
                              "type": "boolean"
                            },
                            "disable_error_log": {
                              "description": "Disable writing error log, default false",
                              "type": "boolean"
                            },
                            "disable_gathering_stats": {
                              "description": "Disable gathering stat, default false",
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "url",
                            "response"
                          ]
                        }
                      }
                    }
                  }
                },
                "allOf": [
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "limit_requests"
                      ],
                      "properties": {
                        "limit_requests": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "limit_req"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "limit_req"
                      ],
                      "properties": {
                        "limit_req": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "limit_requests"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        ".."
                      ],
                      "properties": {
                        "..": {
                          "type": "object",
                          "required": [
                            "listen"
                          ],
                          "properties": {
                            "listen": {
                              "pattern": ".+"
                            }
                          }
                        }
                      }
                    },
                    "else": {
                      "not": {
                        "required": [
                          "healthcheck_dynamic"
                        ]
                      }
                    }
                  }
                ]
              },
              "filters": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "filter_mds": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Specifies to enable or disable MDS. Default is \"True\".",
                        "type": "boolean"
                      },
                      "aio": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "When specified true, dedicated thread will be used for request/response processing when its possible, value inherited from parent and may be overrite in child",
                            "type": "boolean"
                          },
                          "thread_pool_id": {
                            "description": "name of thread pool from section system/optional/thread_pools, value inherite from parent and may by override in child. Must be specified when aio is true",
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        }
                      },
                      "ignore_parent": {
                        "description": "Specifies ignore parent rules and settings or not",
                        "type": "boolean"
                      },
                      "debug": {
                        "type": "boolean"
                      },
                      "config": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "SecRuleEngine": {
                            "enum": [
                              true,
                              false,
                              "DetectionOnly"
                            ]
                          },
                          "SecRequestBodyAccess": {
                            "type": "boolean"
                          },
                          "SecRequestBodyLimit": {
                            "type": "integer"
                          },
                          "SecRequestBodyLimitAction": {
                            "type": "string"
                          },
                          "SecPcreMatchLimit": {
                            "type": "integer"
                          },
                          "SecPcreMatchLimitRecursion": {
                            "type": "integer"
                          },
                          "SecResponseBodyAccess": {
                            "type": "boolean"
                          },
                          "SecResponseBodyMimeType": {
                            "type": "string"
                          },
                          "SecResponseBodyLimit": {
                            "type": "integer"
                          },
                          "SecResponseBodyLimitAction": {
                            "type": "string"
                          },
                          "SecStreamOutBodyInspection": {
                            "type": "boolean"
                          },
                          "SecUploadKeepFiles": {
                            "type": "boolean"
                          },
                          "SecAuditEngine": {
                            "type": "string"
                          },
                          "SecAuditLogRelevantStatus": {
                            "type": "string"
                          },
                          "SecAuditLogParts": {
                            "type": "string"
                          },
                          "SecAuditLogType": {
                            "type": "string",
                            "enum": [
                              "Syslog",
                              "Serial",
                              "Concurrent",
                              "Kafka"
                            ]
                          },
                          "SecAuditSyslogHost": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditSyslogPort": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditSyslogProtocol": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "tcp",
                              "udp"
                            ]
                          },
                          "SecAuditSyslogConnectTimeout": {
                            "type": "integer"
                          },
                          "SecArgumentSeparator": {
                            "type": "string"
                          },
                          "SecCookieFormat": {
                            "type": "integer"
                          },
                          "SecUnicodeMapFile": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "file": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "code": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            },
                            "required": [
                              "file",
                              "code"
                            ]
                          },
                          "SecUseTransformCache": {
                            "type": "boolean"
                          },
                          "SecRequestTimeout": {
                            "type": "integer"
                          },
                          "SecPassSlowRequest": {
                            "type": "boolean"
                          },
                          "SecResponseTimeout": {
                            "type": "integer"
                          },
                          "SecPassSlowResponse": {
                            "type": "boolean"
                          },
                          "SecLogFullBodyOnTimeout": {
                            "type": "boolean"
                          },
                          "SecAuditKafkaBrokers": {
                            "description": "CSV list of brokers",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditKafkaTopic": {
                            "description": "topic to connect to",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditKafkaProtocol": {
                            "description": "connection protocol",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "plaintext",
                              "ssl"
                            ]
                          },
                          "SecAuditKafkaCertificate": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditKafkaKey": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditKafkaCa": {
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        },
                        "allOf": [
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestBodyLimitAction"
                              ],
                              "properties": {
                                "SecRequestBodyLimitAction": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecRequestBodyLimit"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestBodyLimit"
                              ],
                              "properties": {
                                "SecRequestBodyLimit": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecRequestBodyLimitAction"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseBodyLimitAction"
                              ],
                              "properties": {
                                "SecResponseBodyLimitAction": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecResponseBodyLimit"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseBodyLimit"
                              ],
                              "properties": {
                                "SecResponseBodyLimit": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecResponseBodyLimitAction"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecAuditLogType"
                              ],
                              "properties": {
                                "SecAuditLogType": {
                                  "const": "Kafka"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecAuditKafkaBrokers"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecAuditLogType"
                              ],
                              "properties": {
                                "SecAuditLogType": {
                                  "const": "Kafka"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecAuditKafkaTopic"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecAuditKafkaProtocol"
                              ],
                              "properties": {
                                "SecAuditKafkaProtocol": {
                                  "const": "ssl"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecAuditKafkaCertificate"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecAuditKafkaProtocol"
                              ],
                              "properties": {
                                "SecAuditKafkaProtocol": {
                                  "const": "ssl"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecAuditKafkaKey"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestBodyLimitAction"
                              ],
                              "properties": {
                                "SecRequestBodyLimitAction": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecRequestBodyLimit"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestBodyLimit"
                              ],
                              "properties": {
                                "SecRequestBodyLimit": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecRequestBodyLimitAction"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseBodyLimitAction"
                              ],
                              "properties": {
                                "SecResponseBodyLimitAction": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecResponseBodyLimit"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseBodyLimit"
                              ],
                              "properties": {
                                "SecResponseBodyLimit": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecResponseBodyLimitAction"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestTimeout"
                              ],
                              "properties": {
                                "SecRequestTimeout": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecPassSlowRequest"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseTimeout"
                              ],
                              "properties": {
                                "SecResponseTimeout": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecPassSlowResponse"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseTimeout"
                              ],
                              "properties": {
                                "SecResponseTimeout": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecLogFullBodyOnTimeout"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestTimeout"
                              ],
                              "properties": {
                                "SecRequestTimeout": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecLogFullBodyOnTimeout"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecAuditKafkaProtocol"
                              ],
                              "properties": {
                                "SecAuditKafkaProtocol": {
                                  "const": "ssl"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecAuditKafkaCa"
                                ]
                              }
                            }
                          }
                        ]
                      },
                      "rules": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "base",
                            "owasp-crs",
                            "comodo",
                            "sowa-mq",
                            "sowa-http",
                            "sowa-ws",
                            "sowa-ufs",
                            "sowa-kafka",
                            "sowa-http-reversed"
                          ]
                        }
                      },
                      "custom_rules": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              },
              "validators": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "validator_json": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "request": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "default": {
                              "description": "Specify the default rule",
                              "type": "boolean"
                            },
                            "url": {
                              "type": "string"
                            },
                            "method": {
                              "type": "string",
                              "enum": [
                                "post",
                                "put",
                                "delete",
                                "patch"
                              ]
                            },
                            "params": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "name": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "operator": {
                                    "type": "string",
                                    "enum": [
                                      "=",
                                      "!=",
                                      "~",
                                      "~*",
                                      "!~",
                                      "!~*"
                                    ]
                                  },
                                  "pattern": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  }
                                },
                                "required": [
                                  "name",
                                  "operator",
                                  "pattern"
                                ]
                              }
                            },
                            "allow_empty_body": {
                              "description": "Specifies allow empty bodies or not.",
                              "type": "boolean"
                            },
                            "allow_primitives_in_root": {
                              "description": "Specifies allow primitives(integer/string/boolean/null) in root of json or allowed only JSONObject/JSONArray in root. Default - false",
                              "type": "boolean"
                            },
                            "transforms": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "PostFormDataToFlateJson"
                                ]
                              }
                            },
                            "schema": {
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            }
                          },
                          "required": [
                            "schema"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "url"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "method"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "params"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "allow_empty_body"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "allow_primitives_in_root"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      },
                      "response": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "default": {
                              "description": "Specify the default rule",
                              "type": "boolean"
                            },
                            "url": {
                              "type": "string"
                            },
                            "method": {
                              "type": "string",
                              "enum": [
                                "get",
                                "post",
                                "put",
                                "delete",
                                "patch"
                              ]
                            },
                            "params": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "name": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "operator": {
                                    "type": "string",
                                    "enum": [
                                      "=",
                                      "!=",
                                      "~",
                                      "~*",
                                      "!~",
                                      "!~*"
                                    ]
                                  },
                                  "pattern": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  }
                                },
                                "required": [
                                  "name",
                                  "operator",
                                  "pattern"
                                ]
                              }
                            },
                            "allow_empty_body": {
                              "description": "Specifies allow empty bodies or not.",
                              "type": "boolean"
                            },
                            "allow_primitives_in_root": {
                              "description": "Specifies allow primitives(integer/string/boolean/null) in root of json or allowed only JSONObject/JSONArray in root. Default - false",
                              "type": "boolean"
                            },
                            "transforms": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "PostFormDataToFlateJson"
                                ]
                              }
                            },
                            "schema": {
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "response_code": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "operator": {
                                  "type": "string",
                                  "enum": [
                                    "=",
                                    "!=",
                                    "~",
                                    "~*",
                                    "!~",
                                    "!~*"
                                  ]
                                },
                                "pattern": {
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                }
                              },
                              "required": [
                                "operator",
                                "pattern"
                              ]
                            }
                          },
                          "required": [
                            "schema"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "url"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "method"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "params"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "allow_empty_body"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "allow_primitives_in_root"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "response_code"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      },
                      "response_proc_options": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "max_inmemory_size": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "response_generation_type": {
                            "description": "Defines how validator generate error response, when internal - using direct generation in java call, when external - native redirect to error page, by default internal",
                            "type": "string",
                            "enum": [
                              "internal",
                              "external"
                            ]
                          }
                        }
                      },
                      "request_error_code": {
                        "type": "integer"
                      },
                      "request_error_message": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "response_error_code": {
                        "type": "integer"
                      },
                      "response_error_message": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "trailing_garbage_policy": {
                        "type": "string",
                        "enum": [
                          "WEAK",
                          "STANDARD",
                          "STRONG"
                        ]
                      },
                      "action_when_no_rule": {
                        "description": "Defines behavior in case when request or response don't have apropriate rule to validate, if DENY - message blocked, if IGNORE - message processing continue By default - deny",
                        "type": "string",
                        "enum": [
                          "ignore",
                          "deny"
                        ]
                      },
                      "action": {
                        "description": "Defines behavior in case when request or response validation is failed, ignore - only log error, but request or response not blocked, deny - request/response blocked, by default - deny",
                        "type": "string",
                        "enum": [
                          "ignore",
                          "deny"
                        ]
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "response"
                          ],
                          "properties": {
                            "response": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "response_proc_options"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "request"
                          ],
                          "properties": {
                            "request": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "request_error_code"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "request"
                          ],
                          "properties": {
                            "request": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "request_error_message"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "response"
                          ],
                          "properties": {
                            "response": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "response_error_code"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "response"
                          ],
                          "properties": {
                            "response": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "response_error_message"
                            ]
                          }
                        }
                      }
                    ]
                  },
                  "validator_xsd": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "request": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "default": {
                              "description": "Specify the default rule",
                              "type": "boolean"
                            },
                            "url": {
                              "type": "string"
                            },
                            "method": {
                              "type": "string",
                              "enum": [
                                "post",
                                "put",
                                "delete",
                                "patch"
                              ]
                            },
                            "params": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "name": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "operator": {
                                    "type": "string",
                                    "enum": [
                                      "=",
                                      "!=",
                                      "~",
                                      "~*",
                                      "!~",
                                      "!~*"
                                    ]
                                  },
                                  "pattern": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  }
                                },
                                "required": [
                                  "name",
                                  "operator",
                                  "pattern"
                                ]
                              }
                            },
                            "transforms": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "Base64Decode",
                                  "ASN1ContentExtractor"
                                ]
                              }
                            },
                            "schema": {
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "wsdl": {
                              "type": "boolean"
                            },
                            "default_wsdl_style": {
                              "type": "string",
                              "enum": [
                                "document",
                                "rpc"
                              ]
                            }
                          },
                          "required": [
                            "schema"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "url"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "method"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "params"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "wsdl"
                                ],
                                "properties": {
                                  "wsdl": {
                                    "const": false
                                  }
                                }
                              }
                            }
                          ]
                        }
                      },
                      "request_limits": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "entityExpansionLimit": {
                            "description": "Limit the number of entity expansions. Default - 64000",
                            "type": "integer"
                          },
                          "elementAttributeLimit": {
                            "description": "Limit the number of attributes an element can have. Default - 10000",
                            "type": "integer"
                          },
                          "maxOccurLimit": {
                            "description": "Limit the number of content model nodes that may be created when building a grammar for a W3C XML Schema that contains maxOccurs attributes with values other than \"unbounded\". Default - 5000",
                            "type": "integer"
                          },
                          "totalEntitySizeLimit": {
                            "description": "Limit the total size of all entities that include general and parameter entities. The size is calculated as an aggregation of all entities. Default - 50000000",
                            "type": "integer"
                          },
                          "maxGeneralEntitySizeLimit": {
                            "description": "Limit the maximum size of any general entities. Default - 0",
                            "type": "integer"
                          },
                          "maxParameterEntitySizeLimit": {
                            "description": "Limit the maximum size of any parameter entities, including the result of nesting multiple parameter entities. Default - 1000000",
                            "type": "integer"
                          },
                          "entityReplacementLimit": {
                            "description": "Limit the total number of nodes in all entity references. Default - 3000000",
                            "type": "integer"
                          },
                          "maxElementDepth": {
                            "description": "Limit the maximum element depth. Default - 0",
                            "type": "integer"
                          },
                          "maxXMLNameLimit": {
                            "description": "Limit the maximum size of XML names, including element name, attribute name and namespace prefix and URI. Default - 1000",
                            "type": "integer"
                          }
                        }
                      },
                      "response": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "default": {
                              "description": "Specify the default rule",
                              "type": "boolean"
                            },
                            "url": {
                              "type": "string"
                            },
                            "method": {
                              "type": "string",
                              "enum": [
                                "get",
                                "post",
                                "put",
                                "delete",
                                "patch"
                              ]
                            },
                            "params": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "name": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "operator": {
                                    "type": "string",
                                    "enum": [
                                      "=",
                                      "!=",
                                      "~",
                                      "~*",
                                      "!~",
                                      "!~*"
                                    ]
                                  },
                                  "pattern": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  }
                                },
                                "required": [
                                  "name",
                                  "operator",
                                  "pattern"
                                ]
                              }
                            },
                            "transforms": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "Base64Decode",
                                  "ASN1ContentExtractor"
                                ]
                              }
                            },
                            "schema": {
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "wsdl": {
                              "type": "boolean"
                            },
                            "default_wsdl_style": {
                              "type": "string",
                              "enum": [
                                "document",
                                "rpc"
                              ]
                            },
                            "response_code": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "operator": {
                                  "type": "string",
                                  "enum": [
                                    "=",
                                    "!=",
                                    "~",
                                    "~*",
                                    "!~",
                                    "!~*"
                                  ]
                                },
                                "pattern": {
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                }
                              },
                              "required": [
                                "operator",
                                "pattern"
                              ]
                            }
                          },
                          "required": [
                            "schema"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "url"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "method"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "params"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "wsdl"
                                ],
                                "properties": {
                                  "wsdl": {
                                    "const": false
                                  }
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "response_code"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      },
                      "response_limits": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "entityExpansionLimit": {
                            "description": "Limit the number of entity expansions. Default - 64000",
                            "type": "integer"
                          },
                          "elementAttributeLimit": {
                            "description": "Limit the number of attributes an element can have. Default - 10000",
                            "type": "integer"
                          },
                          "maxOccurLimit": {
                            "description": "Limit the number of content model nodes that may be created when building a grammar for a W3C XML Schema that contains maxOccurs attributes with values other than \"unbounded\". Default - 5000",
                            "type": "integer"
                          },
                          "totalEntitySizeLimit": {
                            "description": "Limit the total size of all entities that include general and parameter entities. The size is calculated as an aggregation of all entities. Default - 50000000",
                            "type": "integer"
                          },
                          "maxGeneralEntitySizeLimit": {
                            "description": "Limit the maximum size of any general entities. Default - 0",
                            "type": "integer"
                          },
                          "maxParameterEntitySizeLimit": {
                            "description": "Limit the maximum size of any parameter entities, including the result of nesting multiple parameter entities. Default - 1000000",
                            "type": "integer"
                          },
                          "entityReplacementLimit": {
                            "description": "Limit the total number of nodes in all entity references. Default - 3000000",
                            "type": "integer"
                          },
                          "maxElementDepth": {
                            "description": "Limit the maximum element depth. Default - 0",
                            "type": "integer"
                          },
                          "maxXMLNameLimit": {
                            "description": "Limit the maximum size of XML names, including element name, attribute name and namespace prefix and URI. Default - 1000",
                            "type": "integer"
                          }
                        }
                      },
                      "response_proc_options": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "max_inmemory_size": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "response_generation_type": {
                            "description": "Defines how validator generate error response, when internal - using direct generation in java call, when external - native redirect to error page, by default internal",
                            "type": "string",
                            "enum": [
                              "internal",
                              "external"
                            ]
                          }
                        }
                      },
                      "request_error_code": {
                        "type": "integer"
                      },
                      "request_error_message": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "response_error_code": {
                        "type": "integer"
                      },
                      "response_error_message": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "action_when_no_rule": {
                        "description": "Defines behavior in case when request or response don't have apropriate rule to validate, if DENY - message blocked, if IGNORE - message processing continue By default - deny",
                        "type": "string",
                        "enum": [
                          "ignore",
                          "deny"
                        ]
                      },
                      "action": {
                        "description": "Defines behavior in case when request or response validation is failed, ignore - only log error, but request or response not blocked, deny - request/response blocked, by default - deny",
                        "type": "string",
                        "enum": [
                          "ignore",
                          "deny"
                        ]
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "request"
                          ],
                          "properties": {
                            "request": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "request_limits"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "response"
                          ],
                          "properties": {
                            "response": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "response_limits"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "response"
                          ],
                          "properties": {
                            "response": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "response_proc_options"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "request"
                          ],
                          "properties": {
                            "request": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "request_error_code"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "request"
                          ],
                          "properties": {
                            "request": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "request_error_message"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "response"
                          ],
                          "properties": {
                            "response": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "response_error_code"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "response"
                          ],
                          "properties": {
                            "response": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "response_error_message"
                            ]
                          }
                        }
                      }
                    ]
                  }
                }
              },
              "postprocessors": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "postprocessor_error": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "code": {
                        "description": "Specifies an array of error codes by which templates will be generated.",
                        "type": "array",
                        "items": {
                          "type": "integer"
                        }
                      },
                      "pattern_file": {
                        "description": "Specifies pattern file which will be used as response body.",
                        "type": "string",
                        "enum": [
                          "OSWP_Error_template.json",
                          "abo_errors_schema.json",
                          "default_json.json",
                          "errors_schema.json",
                          "errors_schema_v_1.0.json",
                          "vrvr_error_template.json",
                          "workflow_error_schema.json"
                        ]
                      },
                      "custom_pattern_file": {
                        "description": "Specifies rule file which describes how to fill pattern file.",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "rules_file": {
                        "description": "Specifies rule file which describes how to fill pattern file. Default - rules file from system resources.",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "content_type": {
                        "description": "Specifies content type for response header. Default - none.",
                        "type": "string"
                      },
                      "grpc_error_processing": {
                        "description": "Specifies whether service is a grpc proxy or not, and enables grpc error processing.",
                        "type": "boolean"
                      },
                      "skip_for_upstream_statuses": {
                        "description": "Specifies regex for upstream response status on which response generator will not be used. Default - none.",
                        "type": "string"
                      },
                      "handle_upstream_errors": {
                        "description": "Specifies handle upstream errors or not. True by default.",
                        "type": "boolean"
                      },
                      "handle_upstream_errors_status": {
                        "type": "array",
                        "items": {
                          "type": "integer",
                          "pattern": "^[3-5]\\d\\d$"
                        }
                      },
                      "redirect": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "code": {
                            "description": "Specifies redirect status code",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              301,
                              302,
                              303,
                              307,
                              308
                            ]
                          },
                          "url": {
                            "description": "Defines url to redirect - sets Location response header.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(?:http:\\/\\/|https:\\/\\/|$scheme).+$"
                          }
                        },
                        "required": [
                          "code",
                          "url"
                        ]
                      }
                    }
                  }
                }
              }
            },
            "required": [
              "id",
              "url",
              "ibmmq_qmname_name",
              "ibmmq_channel_name",
              "ibmmq_connection_name",
              "ibmmq_queue_name"
            ]
          }
        },
        "service_http_kafka_proxy": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "settings": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "brokers": {
                  "description": "Specifies the list of bootstrap Kafka brokers, use comma to separate multiple values.",
                  "type": [
                    "number",
                    "string"
                  ]
                },
                "client_id": {
                  "description": "Specifies kafka client id.",
                  "type": [
                    "number",
                    "string"
                  ]
                },
                "compression": {
                  "description": "Specifies message compression format. Snappy is a deafult compression method.",
                  "type": [
                    "number",
                    "string"
                  ],
                  "enum": [
                    "none",
                    "gzip",
                    "snappy",
                    "lz4",
                    "zstd"
                  ]
                },
                "partition": {
                  "description": "Specifies the topic partition id, the default is to automatically assign a partition according to the message id.",
                  "type": [
                    "number",
                    "string"
                  ]
                },
                "partitioner": {
                  "description": "Specifies partitioner for message distribution.",
                  "type": [
                    "number",
                    "string"
                  ],
                  "enum": [
                    "random",
                    "consistent",
                    "consistent_random",
                    "murmur2",
                    "murmur2_random",
                    "fnv1a",
                    "fnv1a_random"
                  ]
                },
                "log_level": {
                  "description": "Specifies logging level (syslog(3) levels). Defaul value is 6.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 7
                },
                "max_retries": {
                  "description": "Specifies how many times to retry sending a failed MessageSet. Retrying may cause reordering.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 10000000
                },
                "buffer_max_messages": {
                  "description": "Specifies maximum number of message allowed on the producer queue. Default value is 100000.",
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 10000000
                },
                "backoff": {
                  "description": "Specifies backoff time in milliseconds. Default value is 100.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 3600000
                },
                "compression_level": {
                  "type": "integer",
                  "minimum": -1,
                  "maximum": 12
                },
                "message_max_bytes": {
                  "type": "integer",
                  "minimum": 1000,
                  "maximum": 1000000000
                },
                "message_copy_max_bytes": {
                  "type": "integer",
                  "minimum": 1000,
                  "maximum": 1000000000
                },
                "message_timeout": {
                  "description": "Local message timeout. This value is only enforced locally and limits the time a produced message waits for successful delivery.",
                  "type": "integer"
                },
                "topic_metadata_refresh_interval": {
                  "description": "Period of time in milliseconds at which topic and broker metadata is refreshed",
                  "type": "integer"
                },
                "ssl_endpoint_identification_algorithm": {
                  "description": "Endpoint identification algorithm to validate broker hostname using broker certificate",
                  "type": [
                    "number",
                    "string"
                  ],
                  "enum": [
                    "none",
                    "https"
                  ]
                },
                "ssl_certificate_verification": {
                  "description": "Enables broker (server) certificate verification. On by default.",
                  "type": "boolean"
                },
                "debug": {
                  "description": "Turn on debug logs.",
                  "type": "boolean"
                },
                "ssl": {
                  "description": "Enables or disables ssl.",
                  "type": "boolean"
                },
                "ssl_keystore": {
                  "description": "Specifies keystorage location.",
                  "type": [
                    "number",
                    "string"
                  ]
                },
                "ssl_keystore_pwd": {
                  "description": "Specifies filename with keystorage password.",
                  "type": [
                    "number",
                    "string"
                  ],
                  "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                },
                "ssl_cert": {
                  "description": "Specifies certificate location.",
                  "type": [
                    "number",
                    "string"
                  ]
                },
                "ssl_ca": {
                  "description": "Specifies CA certificate location.",
                  "type": [
                    "number",
                    "string"
                  ]
                },
                "ssl_key": {
                  "description": "Specifies CA key location.",
                  "type": [
                    "number",
                    "string"
                  ]
                },
                "ssl_key_pwd": {
                  "description": "Ptivate key password.",
                  "type": [
                    "number",
                    "string"
                  ],
                  "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                },
                "ssl_ciphers": {
                  "description": "Specifies the string of enabled ciphers for requests.",
                  "type": "string"
                },
                "ssl_curves": {
                  "description": "The supported-curves extension.",
                  "type": [
                    "number",
                    "string"
                  ]
                },
                "ssl_sigalsgs": {
                  "description": "Signature_algorithms extension to indicate to the server which signature/hash algorithm pairs may be used in digital signatures.",
                  "type": [
                    "number",
                    "string"
                  ]
                },
                "ssl_crl": {
                  "description": "Specifies path to CRL for verifying broker's certificate validity.",
                  "type": [
                    "number",
                    "string"
                  ]
                }
              },
              "required": [
                "brokers"
              ],
              "allOf": [
                {
                  "if": {
                    "type": "object",
                    "required": [
                      "ssl"
                    ],
                    "properties": {
                      "ssl": {
                        "pattern": ".+"
                      }
                    }
                  },
                  "else": {
                    "not": {
                      "required": [
                        "ssl_keystore"
                      ]
                    }
                  }
                },
                {
                  "if": {
                    "type": "object",
                    "required": [
                      "ssl"
                    ],
                    "properties": {
                      "ssl": {
                        "pattern": ".+"
                      }
                    }
                  },
                  "else": {
                    "not": {
                      "required": [
                        "ssl_keystore_pwd"
                      ]
                    }
                  }
                },
                {
                  "if": {
                    "type": "object",
                    "required": [
                      "ssl"
                    ],
                    "properties": {
                      "ssl": {
                        "pattern": ".+"
                      }
                    }
                  },
                  "else": {
                    "not": {
                      "required": [
                        "ssl_cert"
                      ]
                    }
                  }
                },
                {
                  "if": {
                    "type": "object",
                    "required": [
                      "ssl"
                    ],
                    "properties": {
                      "ssl": {
                        "pattern": ".+"
                      }
                    }
                  },
                  "else": {
                    "not": {
                      "required": [
                        "ssl_ca"
                      ]
                    }
                  }
                },
                {
                  "if": {
                    "type": "object",
                    "required": [
                      "ssl"
                    ],
                    "properties": {
                      "ssl": {
                        "pattern": ".+"
                      }
                    }
                  },
                  "else": {
                    "not": {
                      "required": [
                        "ssl_key"
                      ]
                    }
                  }
                },
                {
                  "if": {
                    "type": "object",
                    "required": [
                      "ssl"
                    ],
                    "properties": {
                      "ssl": {
                        "pattern": ".+"
                      }
                    }
                  },
                  "else": {
                    "not": {
                      "required": [
                        "ssl_key_pwd"
                      ]
                    }
                  }
                },
                {
                  "if": {
                    "type": "object",
                    "required": [
                      "ssl"
                    ],
                    "properties": {
                      "ssl": {
                        "pattern": ".+"
                      }
                    }
                  },
                  "else": {
                    "not": {
                      "required": [
                        "ssl_ciphers"
                      ]
                    }
                  }
                },
                {
                  "if": {
                    "type": "object",
                    "required": [
                      "ssl"
                    ],
                    "properties": {
                      "ssl": {
                        "pattern": ".+"
                      }
                    }
                  },
                  "else": {
                    "not": {
                      "required": [
                        "ssl_curves"
                      ]
                    }
                  }
                },
                {
                  "if": {
                    "type": "object",
                    "required": [
                      "ssl"
                    ],
                    "properties": {
                      "ssl": {
                        "pattern": ".+"
                      }
                    }
                  },
                  "else": {
                    "not": {
                      "required": [
                        "ssl_sigalsgs"
                      ]
                    }
                  }
                },
                {
                  "if": {
                    "type": "object",
                    "required": [
                      "ssl"
                    ],
                    "properties": {
                      "ssl": {
                        "pattern": ".+"
                      }
                    }
                  },
                  "else": {
                    "not": {
                      "required": [
                        "ssl_crl"
                      ]
                    }
                  }
                }
              ]
            },
            "instances": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "description": "Specifies the unique id for the service.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^[^.\\/\\\\()]+$"
                  },
                  "name": {
                    "description": "Human readable Service identifier printed in log messages",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "profile_version": {
                    "description": "Specifies profile version of this service",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "description": {
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "listen": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "address": {
                          "description": "specifies ip/hostname on which the socket will listen.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "port": {
                          "description": "specifies port on which the socket will listen",
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 65535
                        },
                        "allow_http2": {
                          "description": "Allow to accept http2 connection. Default - false",
                          "type": "boolean"
                        },
                        "proxy_protocol": {
                          "description": "Accept proxy protocol. Http requests will not be handler with this flag. Default - false",
                          "type": "boolean"
                        },
                        "http2_only": {
                          "description": "Allow to pass only http2 protocol connection. Default - off",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "ssl": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "sspi": {
                              "description": "Enables GOST TLS mode. Default id false.",
                              "type": "boolean"
                            },
                            "client_verify_local_crl_only": {
                              "description": "GOST mode. Specifies whether to check the certificate status locally (otherwise check online). Default is \"off\" (online check).",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "buffer_size": {
                              "description": "GOST mode. Specifies payload length in TLS record (min 1024, max 16384). Default is 16384 bytes.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^([0-9]+[kK]{1})|([0-9]+)$"
                            },
                            "certificate": {
                              "description": "specifies name of the certificate wich will be used. Certificate must be placed in \"resource\" directory.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "certificate_key": {
                              "description": "specifies name of the certificate key wich will be used. Certificate key must be placed in \"resource\" directory.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "password_file": {
                              "description": "specifies name of the password file with secret keys for \"certificate_key\". Password file must be placed in \"resource\" directory.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "client_certificate": {
                              "description": "specifies name of the client certificate wich will be used. Client Certificate must be placed in \"resource\" directory.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "verify_client": {
                              "description": "Enables verification of client certificates. Default - no",
                              "type": "string"
                            },
                            "ocsp": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "enabled": {
                                  "description": "Enables OCSP validation of the client certificate chain",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "enum": [
                                    "on",
                                    "off"
                                  ]
                                },
                                "depth": {
                                  "description": "Specify depth of certificate validation.",
                                  "type": "integer",
                                  "minimum": 1
                                },
                                "mode": {
                                  "description": "Specify mode. In strict mode request will be blocked in case unsuccessfull certiticate checking, in flexible mode - request will not be blocked. Strict by default.",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "enum": [
                                    "strict",
                                    "flexible"
                                  ]
                                },
                                "cache": {
                                  "description": "Sets name and size of the cache that stores client certificates status for OCSP validation. The cache is shared between all worker processes",
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "name": {
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    },
                                    "size": {
                                      "type": [
                                        "number",
                                        "string"
                                      ],
                                      "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                    },
                                    "lifetime": {
                                      "description": "Specifies cache lifetime. 3600 seconds by default",
                                      "type": [
                                        "number",
                                        "string"
                                      ],
                                      "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                                    }
                                  },
                                  "required": [
                                    "name",
                                    "size"
                                  ]
                                },
                                "use_cert_responder": {
                                  "description": "Defines use or not responder from certificate(if specified). False by default",
                                  "type": "boolean"
                                },
                                "responder_timeout": {
                                  "description": "Specifies responder timeout. 60000 milliseconds by default",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                                },
                                "responders": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "regex;(.+)": {
                                      "type": "array",
                                      "uniqueItems": true,
                                      "items": {
                                        "description": "Specifies the URL of the OCSP responder specified in the “Authority Information Access” certificate extension for validation of client certificates. Only http:// OCSP responders are supported",
                                        "type": [
                                          "number",
                                          "string"
                                        ],
                                        "pattern": "^(?:http:\\/\\/).+$"
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "enabled",
                                "depth"
                              ]
                            },
                            "verify_dn_trusted_path": {
                              "description": "Turn on verification of client dn. Use this file to match all regex dn from this file with dn of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "verify_client_error_code": {
                              "description": "Defines the response code if verification client certificate failed. Default value is \"495\"(400)",
                              "type": "integer"
                            },
                            "verify_fingerprint_trusted_path": {
                              "description": "Turn on verification of client fingerprint. Use this file to match all fingerprints from file with fingerprint of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "verify_depth": {
                              "description": "Sets the verification depth in the client certificates chain. Default - 1",
                              "type": "integer"
                            },
                            "protocols": {
                              "description": "specifies used ciphers. The default value is \"LSv1 TLSv1.1 TLSv1.2\" for RSA, and \"TLSv1\" for GOST",
                              "type": "array",
                              "uniqueItems": true,
                              "items": {
                                "type": "string"
                              }
                            },
                            "ciphers": {
                              "description": "specifies group of ciphes. The default value is \"HIGH:!aNULL:!MD5\".",
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "prefix": {
                                    "type": "string",
                                    "enum": [
                                      "!",
                                      "+",
                                      "-"
                                    ]
                                  },
                                  "value": {
                                    "type": "array",
                                    "uniqueItems": true,
                                    "items": {
                                      "type": "string",
                                      "enum": [
                                        "DEFAULT",
                                        "COMPLEMENTOFDEFAULT",
                                        "ALL",
                                        "COMPLEMENTOFALL",
                                        "HIGH",
                                        "MEDIUM",
                                        "LOW",
                                        "EXP",
                                        "EXPORT",
                                        "EXPORT40",
                                        "EXPORT56",
                                        "eNULL",
                                        "NULL",
                                        "aNULL",
                                        "kRSA",
                                        "RSA",
                                        "kDHr",
                                        "kDHd",
                                        "kDH",
                                        "kDHE",
                                        "kEDH",
                                        "DHE",
                                        "EDH",
                                        "ADH",
                                        "DH",
                                        "kECDHr",
                                        "kECDHe",
                                        "kECDH",
                                        "kECDHE",
                                        "kEECDH",
                                        "ECDHE",
                                        "EECDH",
                                        "AECDH",
                                        "ECDH",
                                        "aRSA",
                                        "aDSS",
                                        "DSS",
                                        "aDH",
                                        "aECDH",
                                        "aECDSA",
                                        "ECDSA",
                                        "kFZA",
                                        "aFZA",
                                        "eFZA",
                                        "FZA",
                                        "TLSv1.2",
                                        "TLSv1",
                                        "SSLv3",
                                        "SSLv2",
                                        "AES128",
                                        "AES256",
                                        "AES",
                                        "AESGCM",
                                        "CAMELLIA128",
                                        "CAMELLIA256",
                                        "CAMELLIA",
                                        "3DES",
                                        "DES",
                                        "RC4",
                                        "RC2",
                                        "IDEA",
                                        "SEED",
                                        "MD5",
                                        "SHA1",
                                        "SHA",
                                        "SHA256",
                                        "SHA384",
                                        "aGOST",
                                        "aGOST01",
                                        "aGOST94",
                                        "kGOST",
                                        "GOST94",
                                        "GOST89MAC",
                                        "PSK",
                                        "SUITEB128",
                                        "SUITEB128ONLY",
                                        "SUITEB192",
                                        "@STRENGTH",
                                        "NULL-SHA256"
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "value"
                                ]
                              }
                            },
                            "ciphers_str": {
                              "description": "specifies string of ciphers.",
                              "type": "string"
                            },
                            "dhparam": {
                              "description": "Specifies a file with DH parameters for DHE ciphers and enable usage of DHE ciphers.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "session_timeout": {
                              "description": "specifies timeout of the ssl session. The default value is \"10m\"",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                            },
                            "session_cache": {
                              "description": "specifies cache size for ssl session. The default value evaluates automatically.",
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "off",
                                    "none",
                                    "builtin",
                                    "shared"
                                  ]
                                },
                                "name": {
                                  "type": "string"
                                },
                                "size": {
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                }
                              },
                              "required": [
                                "type"
                              ]
                            },
                            "reject_handshake": {
                              "description": "specifies whether reject all SSL handshake with a different server name (strict SNI check). Default is false.",
                              "type": "boolean"
                            },
                            "stapling": {
                              "description": "enables or disables stapling of OCSP responses by the server. Default - false.",
                              "type": "boolean"
                            },
                            "stapling_file": {
                              "description": "when set, the stapled OCSP response will be taken from the specified file instead of querying the OCSP responder specified in the server certificate.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "stapling_responder": {
                              "description": "overrides the URL of the OCSP responder specified in the “Authority Information Access” certificate extension.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "stapling_verify": {
                              "description": "enables or disables verification of OCSP responses by the server. For verification to work, the certificate of the server certificate issuer, the root certificate, and all intermediate certificates should be configured as trusted using the trusted_certificate directive. Default - false.",
                              "type": "boolean"
                            },
                            "trusted_certificate": {
                              "description": "specifies a file with trusted CA certificates in the PEM format used to verify client certificates and OCSP responses if stapling is enabled.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            }
                          },
                          "required": [
                            "certificate"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "stapling_verify"
                                ],
                                "properties": {
                                  "stapling_verify": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "trusted_certificate"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "verify_dn_trusted_path"
                                ],
                                "properties": {
                                  "verify_dn_trusted_path": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "verify_client_error_code"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "verify_fingerprint_trusted_path"
                                ],
                                "properties": {
                                  "verify_fingerprint_trusted_path": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "verify_client_error_code"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ciphers_str"
                                ],
                                "properties": {
                                  "ciphers_str": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "ciphers"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ciphers"
                                ],
                                "properties": {
                                  "ciphers": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "ciphers_str"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "certificate"
                                ],
                                "properties": {
                                  "certificate": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "stapling"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "stapling"
                                ],
                                "properties": {
                                  "stapling": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "stapling_file"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "stapling"
                                ],
                                "properties": {
                                  "stapling": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "stapling_responder"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "stapling"
                                ],
                                "properties": {
                                  "stapling": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "stapling_verify"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "stapling_verify"
                                ],
                                "properties": {
                                  "stapling_verify": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "trusted_certificate"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      }
                    }
                  },
                  "hostname": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "url": {
                    "description": "Defines the relative URL by which the service will work.",
                    "type": "string"
                  },
                  "allowed_queries": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "method": {
                          "type": "string",
                          "enum": [
                            "get",
                            "head",
                            "post",
                            "put",
                            "options",
                            "trace",
                            "patch",
                            "delete"
                          ]
                        },
                        "decodeUrl": {
                          "description": "By default mds use url-decoded request parameters",
                          "type": "boolean"
                        },
                        "strict_params_check": {
                          "description": "False by default. Allows to block undescribed params and paramless requests.",
                          "type": "boolean"
                        },
                        "undescribed": {
                          "description": "False by default when no params, true when params present. Deny or pass request with undescribed request query params",
                          "type": "boolean"
                        },
                        "params": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "pattern": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "pattern": "^((?!\\(\\?i\\)|\\(\\?-i\\)).)*$"
                              }
                            },
                            "required": [
                              "name",
                              "pattern"
                            ]
                          }
                        }
                      },
                      "required": [
                        "method"
                      ]
                    }
                  },
                  "topic": {
                    "description": "Specifies kafka topic.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^\\S*$"
                  },
                  "optional": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "allow_empty_message": {
                        "description": "When set to On, empty message allowed to send to kafka broker. By default, this option set to Off",
                        "type": "boolean"
                      },
                      "pass_request_headers": {
                        "description": "When set to On, http request headers will be translated to kafka message headers. Off by default.",
                        "type": "boolean"
                      },
                      "headers_blacklist": {
                        "description": "Specifies which http request headers to block from delivering to kafka.",
                        "type": "array",
                        "items": {
                          "description": "Specifies header name (case insensitive).",
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "block_mode": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "If block mode is active, request will not be delivered to kafka with error status code. Off by default.",
                            "type": "boolean"
                          },
                          "wait_remote_result": {
                            "description": "If false, client waits for result of message delivery. If active, client waits for result or timeout.",
                            "type": "boolean"
                          },
                          "remote_timeout": {
                            "description": "Specifies timeout for result of message delivery to kafka.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                          },
                          "check_interval": {
                            "description": "Specifies message delivery check interval. 100 ms by default.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                          },
                          "error_code": {
                            "description": "Specifies error code for client when message delivery to kafka fails.",
                            "type": "integer"
                          }
                        },
                        "allOf": [
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "enabled"
                              ],
                              "properties": {
                                "enabled": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "wait_remote_result"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "wait_remote_result"
                              ],
                              "properties": {
                                "wait_remote_result": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "remote_timeout"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "wait_remote_result"
                              ],
                              "properties": {
                                "wait_remote_result": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "check_interval"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "enabled"
                              ],
                              "properties": {
                                "enabled": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "error_code"
                                ]
                              }
                            }
                          }
                        ]
                      },
                      "settings": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "brokers": {
                            "description": "Specifies the list of bootstrap Kafka brokers, use comma to separate multiple values.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "client_id": {
                            "description": "Specifies kafka client id.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "compression": {
                            "description": "Specifies message compression format. Snappy is a deafult compression method.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "none",
                              "gzip",
                              "snappy",
                              "lz4",
                              "zstd"
                            ]
                          },
                          "partition": {
                            "description": "Specifies the topic partition id, the default is to automatically assign a partition according to the message id.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "partitioner": {
                            "description": "Specifies partitioner for message distribution.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "random",
                              "consistent",
                              "consistent_random",
                              "murmur2",
                              "murmur2_random",
                              "fnv1a",
                              "fnv1a_random"
                            ]
                          },
                          "log_level": {
                            "description": "Specifies logging level (syslog(3) levels). Defaul value is 6.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 7
                          },
                          "max_retries": {
                            "description": "Specifies how many times to retry sending a failed MessageSet. Retrying may cause reordering.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 10000000
                          },
                          "buffer_max_messages": {
                            "description": "Specifies maximum number of message allowed on the producer queue. Default value is 100000.",
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 10000000
                          },
                          "backoff": {
                            "description": "Specifies backoff time in milliseconds. Default value is 100.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 3600000
                          },
                          "compression_level": {
                            "type": "integer",
                            "minimum": -1,
                            "maximum": 12
                          },
                          "message_max_bytes": {
                            "type": "integer",
                            "minimum": 1000,
                            "maximum": 1000000000
                          },
                          "message_copy_max_bytes": {
                            "type": "integer",
                            "minimum": 1000,
                            "maximum": 1000000000
                          },
                          "message_timeout": {
                            "description": "Local message timeout. This value is only enforced locally and limits the time a produced message waits for successful delivery.",
                            "type": "integer"
                          },
                          "topic_metadata_refresh_interval": {
                            "description": "Period of time in milliseconds at which topic and broker metadata is refreshed",
                            "type": "integer"
                          },
                          "ssl_endpoint_identification_algorithm": {
                            "description": "Endpoint identification algorithm to validate broker hostname using broker certificate",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "none",
                              "https"
                            ]
                          },
                          "ssl_certificate_verification": {
                            "description": "Enables broker (server) certificate verification. On by default.",
                            "type": "boolean"
                          },
                          "debug": {
                            "description": "Turn on debug logs.",
                            "type": "boolean"
                          },
                          "ssl": {
                            "description": "Enables or disables ssl.",
                            "type": "boolean"
                          },
                          "ssl_keystore": {
                            "description": "Specifies keystorage location.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "ssl_keystore_pwd": {
                            "description": "Specifies filename with keystorage password.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                          },
                          "ssl_cert": {
                            "description": "Specifies certificate location.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "ssl_ca": {
                            "description": "Specifies CA certificate location.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "ssl_key": {
                            "description": "Specifies CA key location.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "ssl_key_pwd": {
                            "description": "Ptivate key password.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                          },
                          "ssl_ciphers": {
                            "description": "Specifies the string of enabled ciphers for requests.",
                            "type": "string"
                          },
                          "ssl_curves": {
                            "description": "The supported-curves extension.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "ssl_sigalsgs": {
                            "description": "Signature_algorithms extension to indicate to the server which signature/hash algorithm pairs may be used in digital signatures.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "ssl_crl": {
                            "description": "Specifies path to CRL for verifying broker's certificate validity.",
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        },
                        "required": [
                          "brokers"
                        ],
                        "allOf": [
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "ssl"
                              ],
                              "properties": {
                                "ssl": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "ssl_keystore"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "ssl"
                              ],
                              "properties": {
                                "ssl": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "ssl_keystore_pwd"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "ssl"
                              ],
                              "properties": {
                                "ssl": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "ssl_cert"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "ssl"
                              ],
                              "properties": {
                                "ssl": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "ssl_ca"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "ssl"
                              ],
                              "properties": {
                                "ssl": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "ssl_key"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "ssl"
                              ],
                              "properties": {
                                "ssl": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "ssl_key_pwd"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "ssl"
                              ],
                              "properties": {
                                "ssl": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "ssl_ciphers"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "ssl"
                              ],
                              "properties": {
                                "ssl": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "ssl_curves"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "ssl"
                              ],
                              "properties": {
                                "ssl": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "ssl_sigalsgs"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "ssl"
                              ],
                              "properties": {
                                "ssl": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "ssl_crl"
                                ]
                              }
                            }
                          }
                        ]
                      },
                      "log_level": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "debug",
                          "info",
                          "notice",
                          "warn",
                          "error",
                          "crit",
                          "alert",
                          "off"
                        ]
                      },
                      "group_access_log": {
                        "description": "Specifies whether group or not the access log by status codes (2xx, 3xx, 4xx, 5xx, 404, 413, 429, 499, 500). Default is false.",
                        "type": "boolean"
                      },
                      "log_format": {
                        "description": "Specifies which format to use.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "internal": {
                        "description": "Defines if service should be accessible only locally.",
                        "type": "boolean"
                      },
                      "session_cache": {
                        "description": "specifies cache size for ssl session. The default value evaluates automatically.",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "type": {
                            "type": "string",
                            "enum": [
                              "off",
                              "none",
                              "builtin",
                              "shared"
                            ]
                          },
                          "name": {
                            "type": "string"
                          },
                          "size": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "body": {
                        "description": "Specifies body to send to kafka.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "message_id": {
                        "description": "Specifies message id to send to kafka.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "set_variable": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "name": {
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "value": {
                              "type": [
                                "number",
                                "string"
                              ]
                            }
                          },
                          "required": [
                            "name",
                            "value"
                          ]
                        }
                      },
                      "http2_only": {
                        "description": "Allow to pass only http2 protocol connection. Default - off",
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "keepalive_time": {
                        "description": "Limits the maximum time during which requests can be processed through one keep-alive connection. After this time is reached, the connection is closed following the subsequent request processing. By default -  timeout 1h",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                      },
                      "opentelemetry": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "tracing": {
                            "description": "Defines parameters of Opentelemetry Tracing",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "mode": {
                                "description": "Enable or disable tracing at this level",
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "enabled": {
                                    "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                    "type": [
                                      "number",
                                      "string"
                                    ],
                                    "enum": [
                                      "on",
                                      "off",
                                      "var_based"
                                    ]
                                  },
                                  "var": {
                                    "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  }
                                },
                                "allOf": [
                                  {
                                    "if": {
                                      "type": "object",
                                      "required": [
                                        "enabled"
                                      ],
                                      "properties": {
                                        "enabled": {
                                          "const": "var_based"
                                        }
                                      }
                                    },
                                    "then": {
                                      "required": [
                                        "var"
                                      ]
                                    }
                                  }
                                ]
                              },
                              "trace_context": {
                                "description": "Specifies how to propagate traceparent/tracestate headers.   Default - ignore",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "extract",
                                  "inject",
                                  "propagate",
                                  "ignore"
                                ]
                              },
                              "span_name": {
                                "description": "Defines the name of span. By default - name of location, can be contain variables",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "span_attr": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "name": {
                                      "description": "name of attribute",
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    },
                                    "value": {
                                      "description": "value of attribute, can contain variables",
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        "allOf": [
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                ""
                              ],
                              "properties": {
                                "": {
                                  "properties": {
                                    "system": {
                                      "type": "object",
                                      "required": [
                                        "system"
                                      ],
                                      "properties": {
                                        "system": {},
                                        "optional": {
                                          "type": "object",
                                          "required": [
                                            "opentelemetry"
                                          ],
                                          "properties": {
                                            "opentelemetry": {
                                              "pattern": ".+"
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "tracing"
                                ]
                              }
                            }
                          }
                        ]
                      },
                      "event_hook": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Allows to enable/disable EVH for service. Default value is \"True\".",
                            "type": "boolean"
                          },
                          "stage": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "description": "Specifies the stage for log.",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "enum": [
                                    "client_request",
                                    "client_response",
                                    "upstream_request",
                                    "upstream_response"
                                  ]
                                },
                                "log_file": {
                                  "description": "Specifies the log file name. Default is /sowalogs/<profile name>/services/service_http_proxy/service_http_proxy_<id>/<stage>/$request_id.log",
                                  "type": "string"
                                },
                                "pattern_file": {
                                  "description": "Specifies the pattern file.",
                                  "type": "string"
                                },
                                "max_size": {
                                  "description": "Specifies the threshold after exceeding which the event will bw written to temp file in directory specified by \"temp_path\". Default is not specified.",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                }
                              },
                              "required": [
                                "name"
                              ]
                            }
                          },
                          "logger_service": {
                            "description": "Specifies service type to handle event.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "logger_service_type": {
                            "description": "Specifies when loging making synchronous or asynchronous",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "sync",
                              "async"
                            ]
                          },
                          "logger_id": {
                            "description": "Specifies service id to handle event.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "logger_read_timeout": {
                            "description": "Specifies logger read timeout. Default 1s",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                          },
                          "logger_send_timeout": {
                            "description": "Specifies logger send timeout. Default 1s",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                          },
                          "logger_connect_timeout": {
                            "description": "Specifies logger connect timeout. Default 1s",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                          },
                          "logger_client_body_timeout": {
                            "description": "Specifies logger client body timeout. Default 1s",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                          },
                          "logger_buffer_size": {
                            "description": "Specifies logger buffer size for writing to service timeout. Default 16k;",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "logger_max_memory": {
                            "description": "Specifies async logger max in-memory size for event. Default 2M, if limit exceeded event dumped to temp file;",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "log_in_file": {
                            "description": "Specifies log in to the file or not.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "on",
                              "off"
                            ]
                          },
                          "temp_path": {
                            "description": "Specifies the path for saving temp data. Default is /sowarun/<profile name>/service_http_proxy/service_http_proxy_<id>",
                            "type": "string"
                          }
                        },
                        "allOf": [
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "enabled"
                              ],
                              "properties": {
                                "enabled": {
                                  "const": false
                                }
                              }
                            },
                            "then": {
                              "required": []
                            },
                            "else": {
                              "required": [
                                "stage"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "logger_service"
                              ],
                              "properties": {
                                "logger_service": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "logger_read_timeout"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "logger_service"
                              ],
                              "properties": {
                                "logger_service": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "logger_send_timeout"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "logger_service"
                              ],
                              "properties": {
                                "logger_service": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "logger_connect_timeout"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "logger_service"
                              ],
                              "properties": {
                                "logger_service": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "logger_client_body_timeout"
                                ]
                              }
                            }
                          }
                        ]
                      },
                      "exclude_req_stat": {
                        "description": "Excludes location request stats monitoring",
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "exclude_resp_stat": {
                        "description": "Excludes location resp stats monitoring",
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "limit_req": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Enable limit req module",
                            "type": "boolean"
                          },
                          "rate": {
                            "description": "The count of requests which will be handled per time interval.",
                            "type": "number"
                          },
                          "rate_interval": {
                            "description": "Time interval for request rate measuring. Specify 's' for second and 'm' for minute. By default is 's'. Hint - if you need '0.5r/s', you can specify '30r/m'.",
                            "type": "string",
                            "enum": [
                              "s",
                              "m"
                            ]
                          },
                          "size": {
                            "description": "Shared memory zone used to store the state of each IP address and how often it has accessed a request limited URL. The default value is \"10m\"",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})$"
                          },
                          "burst": {
                            "description": "Defines how many requests a client can make in excess of the rate. The default value is \"0\"",
                            "type": "integer"
                          },
                          "cpu_limit": {
                            "description": "Defines maximum CPU load percentage. After exceeding limit, all incoming connections will be declined.",
                            "type": "integer"
                          },
                          "mem_limit": {
                            "description": "Defines maximum memory load percentage. After exceeding limit, all incoming connections will be declined.",
                            "type": "integer"
                          },
                          "target": {
                            "description": "Specifies a target for check. You can use predefined values 'src_ip' and 'service' or any nginx variables using prefix '$' (e.g. $server_port).",
                            "type": "string",
                            "pattern": "^((src_ip)|(service)|(request_method)|(\\$[a-z_]+))$"
                          },
                          "policy_type": {
                            "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                            "type": "string",
                            "enum": [
                              "allow",
                              "forbid"
                            ]
                          },
                          "exclude_ip": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                            }
                          },
                          "nodelay": {
                            "description": "default false",
                            "type": "boolean"
                          },
                          "forbid_action": {
                            "description": "Specifies location on which will be redirected",
                            "type": "string"
                          },
                          "status_code": {
                            "description": "Defines the response code if the limit is exceeded. Default value is \"413\".",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^\\d{3}$"
                          },
                          "dry_run": {
                            "description": "Enables dry run mode. Default is off.",
                            "type": "boolean"
                          },
                          "condition": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "condition_var": {
                                "type": "string",
                                "pattern": "^\\$.+$"
                              },
                              "condition_value": {
                                "type": "string"
                              },
                              "type": {
                                "type": "string",
                                "enum": [
                                  "ifall",
                                  "ifany",
                                  "if"
                                ]
                              },
                              "expression": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "variable": {
                                      "type": "string",
                                      "pattern": "^\\$.+$"
                                    },
                                    "operation": {
                                      "type": "string",
                                      "enum": [
                                        ">=",
                                        "=",
                                        ">",
                                        "<",
                                        "<=",
                                        "!=",
                                        "~",
                                        "~*",
                                        "!~",
                                        "!~*",
                                        "-f",
                                        "!-f",
                                        "-d",
                                        "!-d",
                                        "-e",
                                        "!-e",
                                        "-x",
                                        "!-x"
                                      ]
                                    },
                                    "value": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "variable"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "condition_var",
                              "condition_value",
                              "type"
                            ]
                          }
                        },
                        "required": [
                          "enabled",
                          "target"
                        ]
                      },
                      "limit_requests": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Enable limit req module",
                            "type": "boolean"
                          },
                          "status_code": {
                            "description": "Defines the response code if the limit is exceeded. Default value is \"413\".",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^\\d{3}$"
                          },
                          "dry_run": {
                            "description": "Enables dry run mode. Default is off.",
                            "type": "boolean"
                          },
                          "limit_req": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "rate": {
                                  "description": "The count of requests which will be handled per time interval.",
                                  "type": "number"
                                },
                                "rate_interval": {
                                  "description": "Time interval for request rate measuring. Specify 's' for second and 'm' for minute. By default is 's'. Hint - if you need '0.5r/s', you can specify '30r/m'.",
                                  "type": "string",
                                  "enum": [
                                    "s",
                                    "m"
                                  ]
                                },
                                "size": {
                                  "description": "Shared memory zone used to store the state of each IP address and how often it has accessed a request limited URL. The default value is \"10m\"",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^([0-9]+[kKmM]{1})$"
                                },
                                "burst": {
                                  "description": "Defines how many requests a client can make in excess of the rate. The default value is \"0\"",
                                  "type": "integer"
                                },
                                "cpu_limit": {
                                  "description": "Defines maximum CPU load percentage. After exceeding limit, all incoming connections will be declined.",
                                  "type": "integer"
                                },
                                "mem_limit": {
                                  "description": "Defines maximum memory load percentage. After exceeding limit, all incoming connections will be declined.",
                                  "type": "integer"
                                },
                                "target": {
                                  "description": "Specifies a target for check. You can use predefined values 'src_ip' and 'service' or any nginx variables using prefix '$' (e.g. $server_port).",
                                  "type": "string",
                                  "pattern": "^((src_ip)|(service)|(request_method)|(\\$[a-z_]+))$"
                                },
                                "policy_type": {
                                  "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                                  "type": "string",
                                  "enum": [
                                    "allow",
                                    "forbid"
                                  ]
                                },
                                "exclude_ip": {
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                                  }
                                },
                                "nodelay": {
                                  "description": "default false",
                                  "type": "boolean"
                                },
                                "forbid_action": {
                                  "description": "Specifies location on which will be redirected",
                                  "type": "string"
                                },
                                "condition": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "condition_var": {
                                      "type": "string",
                                      "pattern": "^\\$.+$"
                                    },
                                    "condition_value": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "ifall",
                                        "ifany",
                                        "if"
                                      ]
                                    },
                                    "expression": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "additionalProperties": false,
                                        "properties": {
                                          "variable": {
                                            "type": "string",
                                            "pattern": "^\\$.+$"
                                          },
                                          "operation": {
                                            "type": "string",
                                            "enum": [
                                              ">=",
                                              "=",
                                              ">",
                                              "<",
                                              "<=",
                                              "!=",
                                              "~",
                                              "~*",
                                              "!~",
                                              "!~*",
                                              "-f",
                                              "!-f",
                                              "-d",
                                              "!-d",
                                              "-e",
                                              "!-e",
                                              "-x",
                                              "!-x"
                                            ]
                                          },
                                          "value": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "variable"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "condition_var",
                                    "condition_value",
                                    "type"
                                  ]
                                }
                              },
                              "required": [
                                "target"
                              ]
                            }
                          }
                        },
                        "required": [
                          "enabled",
                          "limit_req"
                        ]
                      },
                      "robot_mitigation": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Enables defense against HTTP robot attacks.",
                            "type": "boolean"
                          },
                          "blacklist": {
                            "description": "Means if a client has failed for N times, this client will be added into blacklist. Default 5",
                            "type": "integer"
                          },
                          "mode": {
                            "description": "Robot Mitigation will return a user-defined js code or predefined flash file to the client. Default js",
                            "type": "string",
                            "enum": [
                              "js",
                              "swf"
                            ]
                          },
                          "timeout": {
                            "description": "Sets the time for the next challenge to be initiated, in seconds. Default 60",
                            "type": "integer"
                          },
                          "ajax": {
                            "description": "This directive sets if challenge for ajax requests based on XMLRequest header. Default off",
                            "type": "boolean"
                          },
                          "policy_type": {
                            "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                            "type": "string",
                            "enum": [
                              "allow",
                              "forbid"
                            ]
                          },
                          "exclude_ip": {
                            "description": "Specifies the IP addresses, which will be excluded from whitelist",
                            "type": "array",
                            "items": {
                              "type": "string",
                              "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                            }
                          },
                          "ua_whitelist": {
                            "description": "This directives specifies the User-Agent whitelist.",
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "enabled"
                        ]
                      },
                      "ip_behavior": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "sample_base": {
                            "description": "Specifies the number of the request for a valid sample",
                            "type": "number"
                          },
                          "size": {
                            "description": "Size means how much memory will use by zone. The default value is \"10m\"",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})$"
                          },
                          "sample_cycle": {
                            "description": "Specifies the cyclog of the sampling, unit could be s (for second) and m (for minute).",
                            "type": "string",
                            "pattern": "^([0-9]+[mMsS]{1})$"
                          },
                          "sensitive": {
                            "description": "Specifies sensitive locations. If a location is defined as a sensitive location, all the resources under this location will be treated as sensitive. Default false",
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "sample_base",
                          "size",
                          "sample_cycle"
                        ]
                      },
                      "cookie_poisoning": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Enables monitoring the Set-Cookies headers and the cookie values in the response from server side.",
                            "type": "boolean"
                          },
                          "action": {
                            "description": "This directive specifies the action when cookie values are detected changed.  Default block",
                            "type": "string",
                            "pattern": "^block|pass|remove|blacklist,[0-9]+$"
                          },
                          "log": {
                            "type": "boolean"
                          },
                          "policy_type": {
                            "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                            "type": "string",
                            "enum": [
                              "allow",
                              "forbid"
                            ]
                          },
                          "exclude_ip": {
                            "description": "Specifies the IP addresses, which will be excluded from whitelist",
                            "type": "array",
                            "items": {
                              "type": "string",
                              "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                            }
                          },
                          "include_ip": {
                            "description": "Specifies the IP addresses, which will be included to whitelist",
                            "type": "array",
                            "items": {
                              "type": "string",
                              "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                            }
                          },
                          "ua_whitelist": {
                            "description": "This directives specifies the User-Agent whitelist.",
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "enabled"
                        ]
                      },
                      "gzip": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Enables response compression by gzip method.",
                            "type": "boolean"
                          },
                          "optional": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "level": {
                                "description": "Sets the compression level. The default value is \"5\".",
                                "type": "integer",
                                "enum": [
                                  1,
                                  2,
                                  3,
                                  4,
                                  5,
                                  6,
                                  7,
                                  8,
                                  9
                                ]
                              },
                              "types": {
                                "description": "Sets the mime-types for which compression is applied. The default value is \"text/html\".",
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "buffer_count": {
                                "description": "Sets the count of buffers in wich the response will be placed. The default value is \"32\".",
                                "type": "integer"
                              },
                              "buffer_size": {
                                "description": "Sets the buffer size in wich the response will be placed. The default value is memory page size.",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                              },
                              "exclude": {
                                "description": "Sets the list of the User-Agent specified by regular expressions for which compression will be disabled.",
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "min_length": {
                                "description": "Sets the minimum length of the response for which compression will be applied. The default value is \"20\".",
                                "type": "integer"
                              },
                              "http_version": {
                                "description": "Specifies the minimum version for the request necessary for the response compression. The default value is \"1.0\"",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  1.0,
                                  1.1
                                ]
                              },
                              "proxied": {
                                "description": "Enables or disables gzipping of responses for proxied requests depending on the request and response.",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  false,
                                  "expired",
                                  "no-cache",
                                  "no-store",
                                  "private",
                                  "no_last_modified",
                                  "no_etag",
                                  "auth",
                                  "any"
                                ]
                              },
                              "vary": {
                                "description": "Enables or disables inserting the 'Vary: Accept-Encoding' response header field if the directives gzip, gzip_static, or gunzip are active.",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  true,
                                  false
                                ]
                              },
                              "static": {
                                "description": "Enables or disables checking the existence of precompressed files. With the \"always\" value, gzipped file is used in all cases, without checking if the client supports it. Default - off",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  true,
                                  false,
                                  "always"
                                ]
                              }
                            }
                          }
                        },
                        "required": [
                          "enabled"
                        ]
                      },
                      "limit_conn": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Enable limit conn module",
                            "type": "boolean"
                          },
                          "count": {
                            "description": "The count of connections which will be handled.",
                            "type": "number"
                          },
                          "size": {
                            "description": "Shared memory zone used to store the state of each target and how often it has create connection. The default value is \"10m\"",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})$"
                          },
                          "target": {
                            "description": "Specifies a target for check.",
                            "type": "string"
                          },
                          "status_code": {
                            "description": "Defines the response code if the limit is exceeded. Default value is \"503\".",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^\\d{3}$"
                          },
                          "dry_run": {
                            "description": "Enables dry run mode. Default is off.",
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "enabled",
                          "count",
                          "target"
                        ]
                      },
                      "async_io": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "directio_threshold": {
                            "description": "Enables the use of the O_DIRECT flag (FreeBSD, Linux), the F_NOCACHE flag (macOS), or the directio() function (Solaris), when reading files that are larger than or equal to the specified size.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "thread_pool_id": {
                            "description": "Defines thread pool to use by id. If the thread_pool_id is omitted, the pool with the name default is used.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "write": {
                            "description": "Specifies whether async_io is used for writing files.",
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "directio_threshold"
                        ]
                      },
                      "log_masking_rules": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "log_type": {
                              "description": "Which log type will be masked",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "event",
                                "security",
                                "all"
                              ]
                            },
                            "object": {
                              "description": "Specifies in which part of data masking will be maked",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "request_header",
                                "response_header",
                                "request_body",
                                "response_body",
                                "request_cookie",
                                "response_cookie"
                              ]
                            },
                            "cookie": {
                              "description": "Individual cookie name wich will be masked",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "header": {
                              "description": "Header name which will be masked",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "mask_symbol": {
                              "description": "Specifies which symbol will be used on replacement",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "."
                            },
                            "expression": {
                              "description": "Search pattern",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "replace_group": {
                              "description": "Specifies group number in expression which will be used for replacement for request or response body. If 0 - replacing full match string",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^[0-9]*$"
                            },
                            "replace_all": {
                              "description": "Replace all occurences or first. By default only first occurence replacing",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "exclusion": {
                              "description": "Define exlcusion from masking in all object with this type, default false",
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "object"
                          ]
                        }
                      },
                      "http2": {
                        "description": "Define http2 specific parameters",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "body_preread_size": {
                            "description": "Sets the size of the buffer per each request in which the request body may be saved before it is started to be processed. By default - 64k",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "chunk_size": {
                            "description": "Sets the maximum size of chunks into which the response body is sliced. A too low value results in higher overhead. A too high value impairs prioritization due to HOL blocking. By default - 8k",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "max_concurrent_pushes": {
                            "description": "Limits the maximum number of concurrent push requests in a connection. By default - 10",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+)$"
                          },
                          "max_concurrent_streams": {
                            "description": "Sets the maximum number of concurrent HTTP/2 streams in a connection. By default - 128",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+)$"
                          },
                          "push_preload": {
                            "description": "Enables automatic conversion of preload links specified in the “Link” response header fields into push requests. By default - off",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "on",
                              "off"
                            ]
                          },
                          "pushes": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "push_parent": {
                                "description": "Cancels the effect of the push directives inherited from the previous configuration level. By default off",
                                "type": "string",
                                "enum": [
                                  "on",
                                  "off"
                                ]
                              },
                              "push_list": {
                                "description": "List of Pre-emptively sends (pushes) a request to the specified uri along with the response to the original request. Only relative URIs with absolute path will be processed",
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            }
                          }
                        }
                      },
                      "log_type": {
                        "description": "Specifies logging mode for sowa-nginx. Default mode - file.",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "kafka": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "group": {
                                  "description": "Specifies which group of logs will use current settings.",
                                  "type": "array",
                                  "items": {
                                    "type": [
                                      "number",
                                      "string"
                                    ],
                                    "enum": [
                                      "system",
                                      "error",
                                      "access"
                                    ]
                                  }
                                },
                                "id": {
                                  "description": "Specifies client.id.",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "broker": {
                                  "description": "Initial list of brokers as a host:port separated by comma.",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "topic": {
                                  "description": "Specifies topic name.",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^\\S*$"
                                },
                                "protocol": {
                                  "description": "Specifies connection protocol. Plaintext by default.",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "enum": [
                                    "plaintext",
                                    "ssl"
                                  ]
                                },
                                "certificate": {
                                  "description": "Specifies ssl.certificate.location",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "ca": {
                                  "description": "Specifies ssl.ca.location.",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "key": {
                                  "description": "Specifies ssl.key.location.",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "ciphers": {
                                  "description": "Specifies ssl.cipher.suites. Same as default ssl ciphers.",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "compression_codec": {
                                  "description": "Compression codec to use for compressing message sets.",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "enum": [
                                    "none",
                                    "gzip",
                                    "snappy",
                                    "lz4",
                                    "zstd"
                                  ]
                                },
                                "compression_level": {
                                  "description": "Compression level parameter for algorithm selected by configuration property compression.codec. Higher values will result in better compression at the cost of more CPU usage.",
                                  "type": "integer",
                                  "minimum": -1,
                                  "maximum": 12
                                },
                                "log_level": {
                                  "description": "Logging level (syslog(3) levels).",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "debug": {
                                  "description": "A comma-separated list of debug contexts to enable.",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "max_messages": {
                                  "description": "Maximum number of messages batched in one MessageSet.",
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 1000000
                                },
                                "pattern_file": {
                                  "description": "Template file with custom log structure.",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "escape": {
                                  "description": "Defines if you need to escape variables used in pattern file.",
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "broker",
                                "topic"
                              ],
                              "allOf": [
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "protocol"
                                    ],
                                    "properties": {
                                      "protocol": {
                                        "const": "ssl"
                                      }
                                    }
                                  },
                                  "then": {
                                    "required": [
                                      "certificate"
                                    ]
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "protocol"
                                    ],
                                    "properties": {
                                      "protocol": {
                                        "const": "ssl"
                                      }
                                    }
                                  },
                                  "then": {
                                    "required": [
                                      "ca"
                                    ]
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "protocol"
                                    ],
                                    "properties": {
                                      "protocol": {
                                        "const": "ssl"
                                      }
                                    }
                                  },
                                  "then": {
                                    "required": [
                                      "key"
                                    ]
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "protocol"
                                    ],
                                    "properties": {
                                      "protocol": {
                                        "const": "ssl"
                                      }
                                    }
                                  },
                                  "else": {
                                    "not": {
                                      "required": [
                                        "ciphers"
                                      ]
                                    }
                                  }
                                }
                              ]
                            }
                          },
                          "syslog": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "group": {
                                  "description": "Specifies which group of logs will use current settings.",
                                  "type": "array",
                                  "items": {
                                    "type": [
                                      "number",
                                      "string"
                                    ],
                                    "enum": [
                                      "system",
                                      "error",
                                      "access"
                                    ]
                                  }
                                },
                                "log_host": {
                                  "description": "Specifies host for remote logging to syslog.",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "log_port": {
                                  "description": "Specifies port for remote logging to syslog. Default port - 514.",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                }
                              }
                            }
                          },
                          "file": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "group": {
                                  "description": "Specifies which group of logs will use current settings.",
                                  "type": "array",
                                  "items": {
                                    "type": [
                                      "number",
                                      "string"
                                    ],
                                    "enum": [
                                      "system",
                                      "error",
                                      "access"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "security": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "enabled": {
                                "description": "Enables logging security security events (XSD, JSON, WSDL and other validators). False by default.",
                                "type": "boolean"
                              },
                              "threads_count": {
                                "description": "Specifies count of threads for thread pool, used for sending security events to syslog. Default is 16",
                                "type": "integer"
                              },
                              "hostname": {
                                "description": "Specifies hostname to dispaly in syslog event. Default is current hostname.",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "appname": {
                                "description": "Specifies application name to dispaly in syslog event. Default is \"sowa-security\".",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "facility": {
                                "description": "Specifies facility for syslog event. Default is USER.",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "KERN",
                                  "USER",
                                  "MAIL",
                                  "DAEMON",
                                  "AUTH",
                                  "SYSLOG",
                                  "LPR",
                                  "NEWS",
                                  "UUCP",
                                  "CRON",
                                  "AUTHPRIV",
                                  "FTP",
                                  "NTP",
                                  "AUDIT",
                                  "ALERT",
                                  "CLOCK",
                                  "LOCAL0",
                                  "LOCAL1",
                                  "LOCAL2",
                                  "LOCAL3",
                                  "LOCAL4",
                                  "LOCAL5",
                                  "LOCAL6",
                                  "LOCAL7"
                                ]
                              },
                              "severity": {
                                "description": "Specifies severity for syslog event. Default is INFORMATIONAL.",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "EMERGENCY",
                                  "ALERT",
                                  "CRITICAL",
                                  "ERROR",
                                  "WARNING",
                                  "NOTICE",
                                  "INFORMATIONAL",
                                  "DEBUG"
                                ]
                              },
                              "target_host": {
                                "description": "Specifies host to send syslog event. Default is \"127.0.0.1\"",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "target_port": {
                                "description": "Specifies port to send syslog event. Default is 514.",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 65535
                              },
                              "protocol": {
                                "description": "Specifies used protocol to send syslog event. Default is UDP.",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "UDP",
                                  "TCP"
                                ]
                              },
                              "msg_format": {
                                "description": "Specifies message format to send syslog event. Default is RFC_3164",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "RFC_3164",
                                  "RFC_5424",
                                  "RFC_5425"
                                ]
                              }
                            }
                          }
                        }
                      },
                      "pipelined_requests": {
                        "description": "Enables/disable pipelined requests, by default - on",
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "upload_size_limit": {
                        "description": "Specifies maximum size of the request body. Parameter \"drop\" specifies whether drop connection or not.",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "size": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "drop": {
                            "type": "string",
                            "enum": [
                              "on",
                              "off"
                            ]
                          },
                          "enable": {
                            "description": "Enables limit request body. Default \"true\"",
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "size"
                        ]
                      },
                      "healthcheck_dynamic": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "initial_state_param_file": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                          },
                          "manual_state_var_refresh_interval": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                          },
                          "endpoints": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "url": {
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "response": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "code": {
                                      "description": "Specifies an array of error codes by which templates will be generated.",
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      }
                                    },
                                    "pattern_file": {
                                      "description": "Specifies pattern file which will be used as response body.",
                                      "type": "string",
                                      "enum": [
                                        "hc_pattern_default.json",
                                        "hc_pattern_profile_default.json",
                                        "hc_pattern_service_default.json"
                                      ]
                                    },
                                    "custom_pattern_file": {
                                      "description": "Specifies rule file which describes how to fill pattern file.",
                                      "type": "string",
                                      "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                    },
                                    "rules_file": {
                                      "description": "Specifies rule file which describes how to fill pattern file. Default - rules file from system resources.",
                                      "type": "string",
                                      "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                    },
                                    "content_type": {
                                      "description": "Specifies content type for response header. Default - none.",
                                      "type": "string"
                                    }
                                  }
                                },
                                "upstream_check_type": {
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "enum": [
                                    "ANY_UPSTREAM_UP",
                                    "ALL_UPSTREAM_UP",
                                    "ANY_UPSTREAM_UP_OR_DRAIN",
                                    "ALL_UPSTREAM_UP_OR_DRAIN"
                                  ]
                                },
                                "service_id": {
                                  "description": "Binded service id",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "upstream_filter": {
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "disable_access_log": {
                                  "description": "Disable writing access log, by default -false",
                                  "type": "boolean"
                                },
                                "disable_error_log": {
                                  "description": "Disable writing error log, default false",
                                  "type": "boolean"
                                },
                                "disable_gathering_stats": {
                                  "description": "Disable gathering stat, default false",
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "url",
                                "response"
                              ]
                            }
                          }
                        }
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "limit_requests"
                          ],
                          "properties": {
                            "limit_requests": {}
                          }
                        },
                        "then": {
                          "not": {
                            "required": [
                              "limit_req"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "limit_req"
                          ],
                          "properties": {
                            "limit_req": {}
                          }
                        },
                        "then": {
                          "not": {
                            "required": [
                              "limit_requests"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            ".."
                          ],
                          "properties": {
                            "..": {
                              "type": "object",
                              "required": [
                                "listen"
                              ],
                              "properties": {
                                "listen": {
                                  "pattern": ".+"
                                }
                              }
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "healthcheck_dynamic"
                            ]
                          }
                        }
                      }
                    ]
                  },
                  "filters": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "filter_mds": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Specifies to enable or disable MDS. Default is \"True\".",
                            "type": "boolean"
                          },
                          "aio": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "enabled": {
                                "description": "When specified true, dedicated thread will be used for request/response processing when its possible, value inherited from parent and may be overrite in child",
                                "type": "boolean"
                              },
                              "thread_pool_id": {
                                "description": "name of thread pool from section system/optional/thread_pools, value inherite from parent and may by override in child. Must be specified when aio is true",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            }
                          },
                          "ignore_parent": {
                            "description": "Specifies ignore parent rules and settings or not",
                            "type": "boolean"
                          },
                          "debug": {
                            "type": "boolean"
                          },
                          "config": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "SecRuleEngine": {
                                "enum": [
                                  true,
                                  false,
                                  "DetectionOnly"
                                ]
                              },
                              "SecRequestBodyAccess": {
                                "type": "boolean"
                              },
                              "SecRequestBodyLimit": {
                                "type": "integer"
                              },
                              "SecRequestBodyLimitAction": {
                                "type": "string"
                              },
                              "SecPcreMatchLimit": {
                                "type": "integer"
                              },
                              "SecPcreMatchLimitRecursion": {
                                "type": "integer"
                              },
                              "SecResponseBodyAccess": {
                                "type": "boolean"
                              },
                              "SecResponseBodyMimeType": {
                                "type": "string"
                              },
                              "SecResponseBodyLimit": {
                                "type": "integer"
                              },
                              "SecResponseBodyLimitAction": {
                                "type": "string"
                              },
                              "SecStreamOutBodyInspection": {
                                "type": "boolean"
                              },
                              "SecUploadKeepFiles": {
                                "type": "boolean"
                              },
                              "SecAuditEngine": {
                                "type": "string"
                              },
                              "SecAuditLogRelevantStatus": {
                                "type": "string"
                              },
                              "SecAuditLogParts": {
                                "type": "string"
                              },
                              "SecAuditLogType": {
                                "type": "string",
                                "enum": [
                                  "Syslog",
                                  "Serial",
                                  "Concurrent",
                                  "Kafka"
                                ]
                              },
                              "SecAuditSyslogHost": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "SecAuditSyslogPort": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "SecAuditSyslogProtocol": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "tcp",
                                  "udp"
                                ]
                              },
                              "SecAuditSyslogConnectTimeout": {
                                "type": "integer"
                              },
                              "SecArgumentSeparator": {
                                "type": "string"
                              },
                              "SecCookieFormat": {
                                "type": "integer"
                              },
                              "SecUnicodeMapFile": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "file": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "code": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  }
                                },
                                "required": [
                                  "file",
                                  "code"
                                ]
                              },
                              "SecUseTransformCache": {
                                "type": "boolean"
                              },
                              "SecRequestTimeout": {
                                "type": "integer"
                              },
                              "SecPassSlowRequest": {
                                "type": "boolean"
                              },
                              "SecResponseTimeout": {
                                "type": "integer"
                              },
                              "SecPassSlowResponse": {
                                "type": "boolean"
                              },
                              "SecLogFullBodyOnTimeout": {
                                "type": "boolean"
                              },
                              "SecAuditKafkaBrokers": {
                                "description": "CSV list of brokers",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "SecAuditKafkaTopic": {
                                "description": "topic to connect to",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "SecAuditKafkaProtocol": {
                                "description": "connection protocol",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "plaintext",
                                  "ssl"
                                ]
                              },
                              "SecAuditKafkaCertificate": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "SecAuditKafkaKey": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "SecAuditKafkaCa": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            },
                            "allOf": [
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecRequestBodyLimitAction"
                                  ],
                                  "properties": {
                                    "SecRequestBodyLimitAction": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "SecRequestBodyLimit"
                                  ]
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecRequestBodyLimit"
                                  ],
                                  "properties": {
                                    "SecRequestBodyLimit": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "SecRequestBodyLimitAction"
                                  ]
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecResponseBodyLimitAction"
                                  ],
                                  "properties": {
                                    "SecResponseBodyLimitAction": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "SecResponseBodyLimit"
                                  ]
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecResponseBodyLimit"
                                  ],
                                  "properties": {
                                    "SecResponseBodyLimit": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "SecResponseBodyLimitAction"
                                  ]
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecAuditLogType"
                                  ],
                                  "properties": {
                                    "SecAuditLogType": {
                                      "const": "Kafka"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "SecAuditKafkaBrokers"
                                  ]
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecAuditLogType"
                                  ],
                                  "properties": {
                                    "SecAuditLogType": {
                                      "const": "Kafka"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "SecAuditKafkaTopic"
                                  ]
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecAuditKafkaProtocol"
                                  ],
                                  "properties": {
                                    "SecAuditKafkaProtocol": {
                                      "const": "ssl"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "SecAuditKafkaCertificate"
                                  ]
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecAuditKafkaProtocol"
                                  ],
                                  "properties": {
                                    "SecAuditKafkaProtocol": {
                                      "const": "ssl"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "SecAuditKafkaKey"
                                  ]
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecRequestBodyLimitAction"
                                  ],
                                  "properties": {
                                    "SecRequestBodyLimitAction": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "else": {
                                  "not": {
                                    "required": [
                                      "SecRequestBodyLimit"
                                    ]
                                  }
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecRequestBodyLimit"
                                  ],
                                  "properties": {
                                    "SecRequestBodyLimit": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "else": {
                                  "not": {
                                    "required": [
                                      "SecRequestBodyLimitAction"
                                    ]
                                  }
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecResponseBodyLimitAction"
                                  ],
                                  "properties": {
                                    "SecResponseBodyLimitAction": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "else": {
                                  "not": {
                                    "required": [
                                      "SecResponseBodyLimit"
                                    ]
                                  }
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecResponseBodyLimit"
                                  ],
                                  "properties": {
                                    "SecResponseBodyLimit": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "else": {
                                  "not": {
                                    "required": [
                                      "SecResponseBodyLimitAction"
                                    ]
                                  }
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecRequestTimeout"
                                  ],
                                  "properties": {
                                    "SecRequestTimeout": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "else": {
                                  "not": {
                                    "required": [
                                      "SecPassSlowRequest"
                                    ]
                                  }
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecResponseTimeout"
                                  ],
                                  "properties": {
                                    "SecResponseTimeout": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "else": {
                                  "not": {
                                    "required": [
                                      "SecPassSlowResponse"
                                    ]
                                  }
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecResponseTimeout"
                                  ],
                                  "properties": {
                                    "SecResponseTimeout": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "else": {
                                  "not": {
                                    "required": [
                                      "SecLogFullBodyOnTimeout"
                                    ]
                                  }
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecRequestTimeout"
                                  ],
                                  "properties": {
                                    "SecRequestTimeout": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "else": {
                                  "not": {
                                    "required": [
                                      "SecLogFullBodyOnTimeout"
                                    ]
                                  }
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecAuditKafkaProtocol"
                                  ],
                                  "properties": {
                                    "SecAuditKafkaProtocol": {
                                      "const": "ssl"
                                    }
                                  }
                                },
                                "else": {
                                  "not": {
                                    "required": [
                                      "SecAuditKafkaCa"
                                    ]
                                  }
                                }
                              }
                            ]
                          },
                          "rules": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "base",
                                "owasp-crs",
                                "comodo",
                                "sowa-mq",
                                "sowa-http",
                                "sowa-ws",
                                "sowa-ufs",
                                "sowa-kafka",
                                "sowa-http-reversed"
                              ]
                            }
                          },
                          "custom_rules": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    }
                  },
                  "transformations": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "conditions": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "check": {
                                "description": "Defines what to check.",
                                "type": "string",
                                "enum": [
                                  "method",
                                  "request_header",
                                  "response_header",
                                  "remote_ip_address"
                                ]
                              },
                              "name": {
                                "description": "Defines header name.",
                                "type": "string"
                              },
                              "pattern": {
                                "description": "Regex which defines matching condition.",
                                "type": "string"
                              },
                              "string_match": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "anchor": {
                                    "description": "Specifies anchor for string bounding. '\\' by default.",
                                    "type": [
                                      "number",
                                      "string"
                                    ],
                                    "pattern": "^.{1}$"
                                  },
                                  "file": {
                                    "description": "Specifies path to file with strings.",
                                    "type": "string",
                                    "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                  },
                                  "strings": {
                                    "type": "array",
                                    "items": {
                                      "description": "Specifies string to check.",
                                      "type": "string"
                                    }
                                  }
                                },
                                "allOf": [
                                  {
                                    "if": {
                                      "type": "object",
                                      "required": [
                                        "strings"
                                      ],
                                      "properties": {
                                        "strings": {}
                                      }
                                    },
                                    "else": {
                                      "required": [
                                        "file"
                                      ]
                                    }
                                  },
                                  {
                                    "if": {
                                      "type": "object",
                                      "required": [
                                        "file"
                                      ],
                                      "properties": {
                                        "file": {}
                                      }
                                    },
                                    "else": {
                                      "required": [
                                        "strings"
                                      ]
                                    }
                                  },
                                  {
                                    "if": {
                                      "type": "object",
                                      "required": [
                                        "strings"
                                      ],
                                      "properties": {
                                        "strings": {}
                                      }
                                    },
                                    "then": {
                                      "not": {
                                        "required": [
                                          "file"
                                        ]
                                      }
                                    }
                                  },
                                  {
                                    "if": {
                                      "type": "object",
                                      "required": [
                                        "file"
                                      ],
                                      "properties": {
                                        "file": {}
                                      }
                                    },
                                    "then": {
                                      "not": {
                                        "required": [
                                          "strings"
                                        ]
                                      }
                                    }
                                  }
                                ]
                              },
                              "contains": {
                                "description": "Specifies does file with strings contain checking value. True by default.",
                                "type": "boolean"
                              },
                              "skip_unicode_decoding": {
                                "description": "skips utf8tounicode and unicode decoding steps to normalize cyrrilic symbols. False by default.",
                                "type": "boolean"
                              },
                              "case_sensitive": {
                                "description": "Defines does pattern or string match case sensitive or not.",
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "check",
                              "case_sensitive"
                            ],
                            "allOf": [
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "string_match"
                                  ],
                                  "properties": {
                                    "string_match": {}
                                  }
                                },
                                "else": {
                                  "required": [
                                    "pattern"
                                  ]
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "string_match"
                                  ],
                                  "properties": {
                                    "string_match": {}
                                  }
                                },
                                "then": {
                                  "not": {
                                    "required": [
                                      "pattern"
                                    ]
                                  }
                                }
                              }
                            ]
                          }
                        },
                        "default": {
                          "description": "Specifies next set of actions as default.",
                          "type": "boolean"
                        },
                        "actions": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "action": {
                                "description": "Defines what have to be checked.",
                                "type": "string",
                                "enum": [
                                  "add_response_header",
                                  "add_proxy_header",
                                  "remove_response_header",
                                  "remove_proxy_header",
                                  "return",
                                  "pass"
                                ]
                              },
                              "status_code": {
                                "description": "Specifies status code to return.",
                                "type": "integer"
                              },
                              "override": {
                                "description": "Specifies override header or not. True by default.",
                                "type": "boolean"
                              },
                              "name": {
                                "description": "Specifies header to be transformed.",
                                "type": "string"
                              },
                              "value": {
                                "description": "Specifies value for setting to the header.",
                                "type": "string"
                              },
                              "value_from_header": {
                                "description": "Specifies request header name for setting it's value to the header.",
                                "type": "string",
                                "pattern": "^.+$"
                              },
                              "value_from_variable": {
                                "description": "Specifies nginx variable for setting it's value to the header.",
                                "type": "string",
                                "enum": [
                                  "remote-address",
                                  "ngx-x-forwarded-for"
                                ]
                              }
                            },
                            "required": [
                              "action"
                            ]
                          }
                        },
                        "description": {
                          "description": "Describes condition block log message",
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "required": [
                        "actions"
                      ],
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "default"
                            ],
                            "properties": {
                              "default": {}
                            }
                          },
                          "else": {
                            "required": [
                              "conditions"
                            ]
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "conditions"
                            ],
                            "properties": {
                              "conditions": {}
                            }
                          },
                          "else": {
                            "required": [
                              "default"
                            ]
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "default"
                            ],
                            "properties": {
                              "default": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "conditions"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  },
                  "validators": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "validator_json": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "request": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "default": {
                                  "description": "Specify the default rule",
                                  "type": "boolean"
                                },
                                "url": {
                                  "type": "string"
                                },
                                "method": {
                                  "type": "string",
                                  "enum": [
                                    "post",
                                    "put",
                                    "delete",
                                    "patch"
                                  ]
                                },
                                "params": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "name": {
                                        "type": [
                                          "number",
                                          "string"
                                        ]
                                      },
                                      "operator": {
                                        "type": "string",
                                        "enum": [
                                          "=",
                                          "!=",
                                          "~",
                                          "~*",
                                          "!~",
                                          "!~*"
                                        ]
                                      },
                                      "pattern": {
                                        "type": [
                                          "number",
                                          "string"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "name",
                                      "operator",
                                      "pattern"
                                    ]
                                  }
                                },
                                "allow_empty_body": {
                                  "description": "Specifies allow empty bodies or not.",
                                  "type": "boolean"
                                },
                                "allow_primitives_in_root": {
                                  "description": "Specifies allow primitives(integer/string/boolean/null) in root of json or allowed only JSONObject/JSONArray in root. Default - false",
                                  "type": "boolean"
                                },
                                "transforms": {
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "PostFormDataToFlateJson"
                                    ]
                                  }
                                },
                                "schema": {
                                  "type": "string",
                                  "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                }
                              },
                              "required": [
                                "schema"
                              ],
                              "allOf": [
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "url"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "method"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "params"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "allow_empty_body"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "allow_primitives_in_root"
                                      ]
                                    }
                                  }
                                }
                              ]
                            }
                          },
                          "response": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "default": {
                                  "description": "Specify the default rule",
                                  "type": "boolean"
                                },
                                "url": {
                                  "type": "string"
                                },
                                "method": {
                                  "type": "string",
                                  "enum": [
                                    "get",
                                    "post",
                                    "put",
                                    "delete",
                                    "patch"
                                  ]
                                },
                                "params": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "name": {
                                        "type": [
                                          "number",
                                          "string"
                                        ]
                                      },
                                      "operator": {
                                        "type": "string",
                                        "enum": [
                                          "=",
                                          "!=",
                                          "~",
                                          "~*",
                                          "!~",
                                          "!~*"
                                        ]
                                      },
                                      "pattern": {
                                        "type": [
                                          "number",
                                          "string"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "name",
                                      "operator",
                                      "pattern"
                                    ]
                                  }
                                },
                                "allow_empty_body": {
                                  "description": "Specifies allow empty bodies or not.",
                                  "type": "boolean"
                                },
                                "allow_primitives_in_root": {
                                  "description": "Specifies allow primitives(integer/string/boolean/null) in root of json or allowed only JSONObject/JSONArray in root. Default - false",
                                  "type": "boolean"
                                },
                                "transforms": {
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "PostFormDataToFlateJson"
                                    ]
                                  }
                                },
                                "schema": {
                                  "type": "string",
                                  "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                },
                                "response_code": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "operator": {
                                      "type": "string",
                                      "enum": [
                                        "=",
                                        "!=",
                                        "~",
                                        "~*",
                                        "!~",
                                        "!~*"
                                      ]
                                    },
                                    "pattern": {
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "operator",
                                    "pattern"
                                  ]
                                }
                              },
                              "required": [
                                "schema"
                              ],
                              "allOf": [
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "url"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "method"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "params"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "allow_empty_body"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "allow_primitives_in_root"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "response_code"
                                      ]
                                    }
                                  }
                                }
                              ]
                            }
                          },
                          "response_proc_options": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "max_inmemory_size": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                              },
                              "response_generation_type": {
                                "description": "Defines how validator generate error response, when internal - using direct generation in java call, when external - native redirect to error page, by default internal",
                                "type": "string",
                                "enum": [
                                  "internal",
                                  "external"
                                ]
                              }
                            }
                          },
                          "request_error_code": {
                            "type": "integer"
                          },
                          "request_error_message": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "response_error_code": {
                            "type": "integer"
                          },
                          "response_error_message": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "trailing_garbage_policy": {
                            "type": "string",
                            "enum": [
                              "WEAK",
                              "STANDARD",
                              "STRONG"
                            ]
                          },
                          "action_when_no_rule": {
                            "description": "Defines behavior in case when request or response don't have apropriate rule to validate, if DENY - message blocked, if IGNORE - message processing continue By default - deny",
                            "type": "string",
                            "enum": [
                              "ignore",
                              "deny"
                            ]
                          },
                          "action": {
                            "description": "Defines behavior in case when request or response validation is failed, ignore - only log error, but request or response not blocked, deny - request/response blocked, by default - deny",
                            "type": "string",
                            "enum": [
                              "ignore",
                              "deny"
                            ]
                          }
                        },
                        "allOf": [
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "response"
                              ],
                              "properties": {
                                "response": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "response_proc_options"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "request"
                              ],
                              "properties": {
                                "request": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "request_error_code"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "request"
                              ],
                              "properties": {
                                "request": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "request_error_message"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "response"
                              ],
                              "properties": {
                                "response": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "response_error_code"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "response"
                              ],
                              "properties": {
                                "response": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "response_error_message"
                                ]
                              }
                            }
                          }
                        ]
                      },
                      "validator_xsd": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "request": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "default": {
                                  "description": "Specify the default rule",
                                  "type": "boolean"
                                },
                                "url": {
                                  "type": "string"
                                },
                                "method": {
                                  "type": "string",
                                  "enum": [
                                    "post",
                                    "put",
                                    "delete",
                                    "patch"
                                  ]
                                },
                                "params": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "name": {
                                        "type": [
                                          "number",
                                          "string"
                                        ]
                                      },
                                      "operator": {
                                        "type": "string",
                                        "enum": [
                                          "=",
                                          "!=",
                                          "~",
                                          "~*",
                                          "!~",
                                          "!~*"
                                        ]
                                      },
                                      "pattern": {
                                        "type": [
                                          "number",
                                          "string"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "name",
                                      "operator",
                                      "pattern"
                                    ]
                                  }
                                },
                                "transforms": {
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "Base64Decode",
                                      "ASN1ContentExtractor"
                                    ]
                                  }
                                },
                                "schema": {
                                  "type": "string",
                                  "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                },
                                "wsdl": {
                                  "type": "boolean"
                                },
                                "default_wsdl_style": {
                                  "type": "string",
                                  "enum": [
                                    "document",
                                    "rpc"
                                  ]
                                }
                              },
                              "required": [
                                "schema"
                              ],
                              "allOf": [
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "url"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "method"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "params"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "wsdl"
                                    ],
                                    "properties": {
                                      "wsdl": {
                                        "const": false
                                      }
                                    }
                                  }
                                }
                              ]
                            }
                          },
                          "request_limits": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "entityExpansionLimit": {
                                "description": "Limit the number of entity expansions. Default - 64000",
                                "type": "integer"
                              },
                              "elementAttributeLimit": {
                                "description": "Limit the number of attributes an element can have. Default - 10000",
                                "type": "integer"
                              },
                              "maxOccurLimit": {
                                "description": "Limit the number of content model nodes that may be created when building a grammar for a W3C XML Schema that contains maxOccurs attributes with values other than \"unbounded\". Default - 5000",
                                "type": "integer"
                              },
                              "totalEntitySizeLimit": {
                                "description": "Limit the total size of all entities that include general and parameter entities. The size is calculated as an aggregation of all entities. Default - 50000000",
                                "type": "integer"
                              },
                              "maxGeneralEntitySizeLimit": {
                                "description": "Limit the maximum size of any general entities. Default - 0",
                                "type": "integer"
                              },
                              "maxParameterEntitySizeLimit": {
                                "description": "Limit the maximum size of any parameter entities, including the result of nesting multiple parameter entities. Default - 1000000",
                                "type": "integer"
                              },
                              "entityReplacementLimit": {
                                "description": "Limit the total number of nodes in all entity references. Default - 3000000",
                                "type": "integer"
                              },
                              "maxElementDepth": {
                                "description": "Limit the maximum element depth. Default - 0",
                                "type": "integer"
                              },
                              "maxXMLNameLimit": {
                                "description": "Limit the maximum size of XML names, including element name, attribute name and namespace prefix and URI. Default - 1000",
                                "type": "integer"
                              }
                            }
                          },
                          "response": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "default": {
                                  "description": "Specify the default rule",
                                  "type": "boolean"
                                },
                                "url": {
                                  "type": "string"
                                },
                                "method": {
                                  "type": "string",
                                  "enum": [
                                    "get",
                                    "post",
                                    "put",
                                    "delete",
                                    "patch"
                                  ]
                                },
                                "params": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "name": {
                                        "type": [
                                          "number",
                                          "string"
                                        ]
                                      },
                                      "operator": {
                                        "type": "string",
                                        "enum": [
                                          "=",
                                          "!=",
                                          "~",
                                          "~*",
                                          "!~",
                                          "!~*"
                                        ]
                                      },
                                      "pattern": {
                                        "type": [
                                          "number",
                                          "string"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "name",
                                      "operator",
                                      "pattern"
                                    ]
                                  }
                                },
                                "transforms": {
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "Base64Decode",
                                      "ASN1ContentExtractor"
                                    ]
                                  }
                                },
                                "schema": {
                                  "type": "string",
                                  "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                },
                                "wsdl": {
                                  "type": "boolean"
                                },
                                "default_wsdl_style": {
                                  "type": "string",
                                  "enum": [
                                    "document",
                                    "rpc"
                                  ]
                                },
                                "response_code": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "operator": {
                                      "type": "string",
                                      "enum": [
                                        "=",
                                        "!=",
                                        "~",
                                        "~*",
                                        "!~",
                                        "!~*"
                                      ]
                                    },
                                    "pattern": {
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "operator",
                                    "pattern"
                                  ]
                                }
                              },
                              "required": [
                                "schema"
                              ],
                              "allOf": [
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "url"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "method"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "params"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "wsdl"
                                    ],
                                    "properties": {
                                      "wsdl": {
                                        "const": false
                                      }
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "response_code"
                                      ]
                                    }
                                  }
                                }
                              ]
                            }
                          },
                          "response_limits": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "entityExpansionLimit": {
                                "description": "Limit the number of entity expansions. Default - 64000",
                                "type": "integer"
                              },
                              "elementAttributeLimit": {
                                "description": "Limit the number of attributes an element can have. Default - 10000",
                                "type": "integer"
                              },
                              "maxOccurLimit": {
                                "description": "Limit the number of content model nodes that may be created when building a grammar for a W3C XML Schema that contains maxOccurs attributes with values other than \"unbounded\". Default - 5000",
                                "type": "integer"
                              },
                              "totalEntitySizeLimit": {
                                "description": "Limit the total size of all entities that include general and parameter entities. The size is calculated as an aggregation of all entities. Default - 50000000",
                                "type": "integer"
                              },
                              "maxGeneralEntitySizeLimit": {
                                "description": "Limit the maximum size of any general entities. Default - 0",
                                "type": "integer"
                              },
                              "maxParameterEntitySizeLimit": {
                                "description": "Limit the maximum size of any parameter entities, including the result of nesting multiple parameter entities. Default - 1000000",
                                "type": "integer"
                              },
                              "entityReplacementLimit": {
                                "description": "Limit the total number of nodes in all entity references. Default - 3000000",
                                "type": "integer"
                              },
                              "maxElementDepth": {
                                "description": "Limit the maximum element depth. Default - 0",
                                "type": "integer"
                              },
                              "maxXMLNameLimit": {
                                "description": "Limit the maximum size of XML names, including element name, attribute name and namespace prefix and URI. Default - 1000",
                                "type": "integer"
                              }
                            }
                          },
                          "response_proc_options": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "max_inmemory_size": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                              },
                              "response_generation_type": {
                                "description": "Defines how validator generate error response, when internal - using direct generation in java call, when external - native redirect to error page, by default internal",
                                "type": "string",
                                "enum": [
                                  "internal",
                                  "external"
                                ]
                              }
                            }
                          },
                          "request_error_code": {
                            "type": "integer"
                          },
                          "request_error_message": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "response_error_code": {
                            "type": "integer"
                          },
                          "response_error_message": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "action_when_no_rule": {
                            "description": "Defines behavior in case when request or response don't have apropriate rule to validate, if DENY - message blocked, if IGNORE - message processing continue By default - deny",
                            "type": "string",
                            "enum": [
                              "ignore",
                              "deny"
                            ]
                          },
                          "action": {
                            "description": "Defines behavior in case when request or response validation is failed, ignore - only log error, but request or response not blocked, deny - request/response blocked, by default - deny",
                            "type": "string",
                            "enum": [
                              "ignore",
                              "deny"
                            ]
                          }
                        },
                        "allOf": [
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "request"
                              ],
                              "properties": {
                                "request": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "request_limits"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "response"
                              ],
                              "properties": {
                                "response": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "response_limits"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "response"
                              ],
                              "properties": {
                                "response": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "response_proc_options"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "request"
                              ],
                              "properties": {
                                "request": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "request_error_code"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "request"
                              ],
                              "properties": {
                                "request": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "request_error_message"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "response"
                              ],
                              "properties": {
                                "response": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "response_error_code"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "response"
                              ],
                              "properties": {
                                "response": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "response_error_message"
                                ]
                              }
                            }
                          }
                        ]
                      }
                    }
                  },
                  "modifiers": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "set_header": {
                        "description": "Allows to redefine or replace header in client request.",
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "proxy_host_resolved": {
                        "description": "Determines whether the original peer name or its resolved IP representation will be pass to the upstream in header \"Host\". Default is false.",
                        "type": "boolean"
                      },
                      "pass_header": {
                        "description": "Allows passing forbidden headers from the upstream to the client.",
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "proxy_redirect": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "sub_filter": {
                        "description": "Allows to make replace from one string to another in the upstream response.",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "once": {
                            "type": "string",
                            "enum": [
                              "on",
                              "off"
                            ]
                          },
                          "last_modified": {
                            "type": "string",
                            "enum": [
                              "on",
                              "off"
                            ]
                          },
                          "replace": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "from": {
                                  "type": "string"
                                },
                                "to": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "from",
                                "to"
                              ]
                            }
                          }
                        },
                        "required": [
                          "replace"
                        ]
                      },
                      "subs_filter": {
                        "description": "Allows to make replace from one string to another in the upstream response using regular expressions.",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "mime_types": {
                            "description": "Default \"*\"",
                            "type": "string"
                          },
                          "replace": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "from": {
                                  "type": "string"
                                },
                                "to": {
                                  "type": "string"
                                },
                                "flags": {
                                  "description": "Default \"r\"",
                                  "type": "array",
                                  "uniqueItems": true,
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "i",
                                      "g",
                                      "o",
                                      "r"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "from",
                                "to"
                              ]
                            }
                          }
                        },
                        "required": [
                          "replace"
                        ]
                      },
                      "cors": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "origin_wl": {
                            "description": "Specifies whitelist for the Origin header.",
                            "type": "string",
                            "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                          },
                          "origin_wl_type": {
                            "description": "Specifies type for the 'origin_wl' directive. 're' - whitelist with regex values, 'recl' - whitelist with caseless regex values. If not specified, then full match used.",
                            "type": "string",
                            "enum": [
                              "re",
                              "recl"
                            ]
                          },
                          "origin_allow_null_wl": {
                            "description": "Specifies whitelist of hosts whom allowed 'Origin null'.",
                            "type": "string",
                            "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                          },
                          "origin_allow_null_wl_type": {
                            "description": "Specifies type for the 'origin_allow_null_wl' directive. 're' - whitelist with regex values, 'recl' - whitelist with caseless regex values. If not specified, then full match used.",
                            "type": "string",
                            "enum": [
                              "re",
                              "recl"
                            ]
                          },
                          "method_wl": {
                            "description": "Specifies whitelist for the request method. Used in prefligth request.",
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "get",
                                "head",
                                "post",
                                "put",
                                "connect",
                                "options",
                                "trace",
                                "patch",
                                "delete"
                              ]
                            }
                          },
                          "deny_status": {
                            "description": "Specifies the deny status when CORS checks is failed. By default is 403.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(4|5)[0-9]{2}$"
                          }
                        },
                        "required": [
                          "origin_wl",
                          "method_wl"
                        ]
                      },
                      "set_output_headers": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "headers": {
                              "description": "Specifies header line. For example 'X-MyHeader foo'.",
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "status_codes": {
                              "description": "Specifies status code criteria.",
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "pattern": "^[1-5][0-9]{2}$"
                              }
                            },
                            "content_types": {
                              "description": "Specifies content type criteria in response headers. For example 'text/html'.",
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "conditions": {
                              "description": "Specifies the conditions file for the headers.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "conditions_reverse": {
                              "type": "boolean"
                            },
                            "set_var": {
                              "description": "Setting variable for use in this headers. For example '$orig_xff $http_x_forwarded_for'.",
                              "type": "string"
                            },
                            "value_regex": {
                              "description": "Updates an existing header if it's current value matches the specified regular expression. Example '~*session=.*'",
                              "type": [
                                "number",
                                "string"
                              ]
                            }
                          },
                          "required": [
                            "headers"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "conditions"
                                ],
                                "properties": {
                                  "conditions": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "conditions_reverse"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      },
                      "set_input_headers": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "headers": {
                              "description": "Specifies header line. For example 'X-MyHeader foo'.",
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "content_types": {
                              "description": "Specifies content type criteria in request headers. For example 'text/html'.",
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "conditions": {
                              "description": "Specifies the conditions file for the headers.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "conditions_reverse": {
                              "type": "boolean"
                            },
                            "set_var": {
                              "description": "Setting variable for use in this headers. For example '$orig_xff $http_x_forwarded_for'.",
                              "type": "string"
                            }
                          },
                          "required": [
                            "headers"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "conditions"
                                ],
                                "properties": {
                                  "conditions": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "conditions_reverse"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            ".."
                          ],
                          "properties": {
                            "..": {
                              "properties": {
                                "optional": {
                                  "type": "object",
                                  "required": [
                                    "http_version"
                                  ],
                                  "properties": {
                                    "http_version": {}
                                  }
                                }
                              }
                            }
                          }
                        },
                        "then": {
                          "not": {
                            "required": [
                              "proxy_redirect"
                            ]
                          }
                        }
                      }
                    ]
                  },
                  "postprocessors": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "postprocessor_error": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "code": {
                            "description": "Specifies an array of error codes by which templates will be generated.",
                            "type": "array",
                            "items": {
                              "type": "integer"
                            }
                          },
                          "pattern_file": {
                            "description": "Specifies pattern file which will be used as response body.",
                            "type": "string",
                            "enum": [
                              "OSWP_Error_template.json",
                              "abo_errors_schema.json",
                              "default_json.json",
                              "errors_schema.json",
                              "errors_schema_v_1.0.json",
                              "vrvr_error_template.json",
                              "workflow_error_schema.json"
                            ]
                          },
                          "custom_pattern_file": {
                            "description": "Specifies rule file which describes how to fill pattern file.",
                            "type": "string",
                            "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                          },
                          "rules_file": {
                            "description": "Specifies rule file which describes how to fill pattern file. Default - rules file from system resources.",
                            "type": "string",
                            "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                          },
                          "content_type": {
                            "description": "Specifies content type for response header. Default - none.",
                            "type": "string"
                          },
                          "grpc_error_processing": {
                            "description": "Specifies whether service is a grpc proxy or not, and enables grpc error processing.",
                            "type": "boolean"
                          },
                          "skip_for_upstream_statuses": {
                            "description": "Specifies regex for upstream response status on which response generator will not be used. Default - none.",
                            "type": "string"
                          },
                          "handle_upstream_errors": {
                            "description": "Specifies handle upstream errors or not. True by default.",
                            "type": "boolean"
                          },
                          "handle_upstream_errors_status": {
                            "type": "array",
                            "items": {
                              "type": "integer",
                              "pattern": "^[3-5]\\d\\d$"
                            }
                          },
                          "redirect": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "code": {
                                "description": "Specifies redirect status code",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  301,
                                  302,
                                  303,
                                  307,
                                  308
                                ]
                              },
                              "url": {
                                "description": "Defines url to redirect - sets Location response header.",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "pattern": "^(?:http:\\/\\/|https:\\/\\/|$scheme).+$"
                              }
                            },
                            "required": [
                              "code",
                              "url"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "required": [
                  "id",
                  "url",
                  "topic"
                ]
              }
            }
          },
          "required": [
            "instances"
          ]
        },
        "service_stub_file_receiver": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "Specifies the unique id for the service.",
                "type": [
                  "number",
                  "string"
                ],
                "pattern": "^[^.\\/\\\\()]+$"
              },
              "listen": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "address": {
                      "description": "specifies ip/hostname on which the socket will listen.",
                      "type": [
                        "number",
                        "string"
                      ]
                    },
                    "port": {
                      "description": "specifies port on which the socket will listen",
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 65535
                    },
                    "allow_http2": {
                      "description": "Allow to accept http2 connection. Default - false",
                      "type": "boolean"
                    },
                    "proxy_protocol": {
                      "description": "Accept proxy protocol. Http requests will not be handler with this flag. Default - false",
                      "type": "boolean"
                    },
                    "http2_only": {
                      "description": "Allow to pass only http2 protocol connection. Default - off",
                      "type": "string",
                      "enum": [
                        "on",
                        "off"
                      ]
                    },
                    "ssl": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "sspi": {
                          "description": "Enables GOST TLS mode. Default id false.",
                          "type": "boolean"
                        },
                        "client_verify_local_crl_only": {
                          "description": "GOST mode. Specifies whether to check the certificate status locally (otherwise check online). Default is \"off\" (online check).",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "buffer_size": {
                          "description": "GOST mode. Specifies payload length in TLS record (min 1024, max 16384). Default is 16384 bytes.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^([0-9]+[kK]{1})|([0-9]+)$"
                        },
                        "certificate": {
                          "description": "specifies name of the certificate wich will be used. Certificate must be placed in \"resource\" directory.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "certificate_key": {
                          "description": "specifies name of the certificate key wich will be used. Certificate key must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "password_file": {
                          "description": "specifies name of the password file with secret keys for \"certificate_key\". Password file must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "client_certificate": {
                          "description": "specifies name of the client certificate wich will be used. Client Certificate must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_client": {
                          "description": "Enables verification of client certificates. Default - no",
                          "type": "string"
                        },
                        "ocsp": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "enabled": {
                              "description": "Enables OCSP validation of the client certificate chain",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "depth": {
                              "description": "Specify depth of certificate validation.",
                              "type": "integer",
                              "minimum": 1
                            },
                            "mode": {
                              "description": "Specify mode. In strict mode request will be blocked in case unsuccessfull certiticate checking, in flexible mode - request will not be blocked. Strict by default.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "strict",
                                "flexible"
                              ]
                            },
                            "cache": {
                              "description": "Sets name and size of the cache that stores client certificates status for OCSP validation. The cache is shared between all worker processes",
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "size": {
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                },
                                "lifetime": {
                                  "description": "Specifies cache lifetime. 3600 seconds by default",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                                }
                              },
                              "required": [
                                "name",
                                "size"
                              ]
                            },
                            "use_cert_responder": {
                              "description": "Defines use or not responder from certificate(if specified). False by default",
                              "type": "boolean"
                            },
                            "responder_timeout": {
                              "description": "Specifies responder timeout. 60000 milliseconds by default",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                            },
                            "responders": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "regex;(.+)": {
                                  "type": "array",
                                  "uniqueItems": true,
                                  "items": {
                                    "description": "Specifies the URL of the OCSP responder specified in the “Authority Information Access” certificate extension for validation of client certificates. Only http:// OCSP responders are supported",
                                    "type": [
                                      "number",
                                      "string"
                                    ],
                                    "pattern": "^(?:http:\\/\\/).+$"
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "enabled",
                            "depth"
                          ]
                        },
                        "verify_dn_trusted_path": {
                          "description": "Turn on verification of client dn. Use this file to match all regex dn from this file with dn of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_client_error_code": {
                          "description": "Defines the response code if verification client certificate failed. Default value is \"495\"(400)",
                          "type": "integer"
                        },
                        "verify_fingerprint_trusted_path": {
                          "description": "Turn on verification of client fingerprint. Use this file to match all fingerprints from file with fingerprint of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_depth": {
                          "description": "Sets the verification depth in the client certificates chain. Default - 1",
                          "type": "integer"
                        },
                        "protocols": {
                          "description": "specifies used ciphers. The default value is \"LSv1 TLSv1.1 TLSv1.2\" for RSA, and \"TLSv1\" for GOST",
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string"
                          }
                        },
                        "ciphers": {
                          "description": "specifies group of ciphes. The default value is \"HIGH:!aNULL:!MD5\".",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "prefix": {
                                "type": "string",
                                "enum": [
                                  "!",
                                  "+",
                                  "-"
                                ]
                              },
                              "value": {
                                "type": "array",
                                "uniqueItems": true,
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "DEFAULT",
                                    "COMPLEMENTOFDEFAULT",
                                    "ALL",
                                    "COMPLEMENTOFALL",
                                    "HIGH",
                                    "MEDIUM",
                                    "LOW",
                                    "EXP",
                                    "EXPORT",
                                    "EXPORT40",
                                    "EXPORT56",
                                    "eNULL",
                                    "NULL",
                                    "aNULL",
                                    "kRSA",
                                    "RSA",
                                    "kDHr",
                                    "kDHd",
                                    "kDH",
                                    "kDHE",
                                    "kEDH",
                                    "DHE",
                                    "EDH",
                                    "ADH",
                                    "DH",
                                    "kECDHr",
                                    "kECDHe",
                                    "kECDH",
                                    "kECDHE",
                                    "kEECDH",
                                    "ECDHE",
                                    "EECDH",
                                    "AECDH",
                                    "ECDH",
                                    "aRSA",
                                    "aDSS",
                                    "DSS",
                                    "aDH",
                                    "aECDH",
                                    "aECDSA",
                                    "ECDSA",
                                    "kFZA",
                                    "aFZA",
                                    "eFZA",
                                    "FZA",
                                    "TLSv1.2",
                                    "TLSv1",
                                    "SSLv3",
                                    "SSLv2",
                                    "AES128",
                                    "AES256",
                                    "AES",
                                    "AESGCM",
                                    "CAMELLIA128",
                                    "CAMELLIA256",
                                    "CAMELLIA",
                                    "3DES",
                                    "DES",
                                    "RC4",
                                    "RC2",
                                    "IDEA",
                                    "SEED",
                                    "MD5",
                                    "SHA1",
                                    "SHA",
                                    "SHA256",
                                    "SHA384",
                                    "aGOST",
                                    "aGOST01",
                                    "aGOST94",
                                    "kGOST",
                                    "GOST94",
                                    "GOST89MAC",
                                    "PSK",
                                    "SUITEB128",
                                    "SUITEB128ONLY",
                                    "SUITEB192",
                                    "@STRENGTH",
                                    "NULL-SHA256"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "value"
                            ]
                          }
                        },
                        "ciphers_str": {
                          "description": "specifies string of ciphers.",
                          "type": "string"
                        },
                        "dhparam": {
                          "description": "Specifies a file with DH parameters for DHE ciphers and enable usage of DHE ciphers.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "session_timeout": {
                          "description": "specifies timeout of the ssl session. The default value is \"10m\"",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                        },
                        "session_cache": {
                          "description": "specifies cache size for ssl session. The default value evaluates automatically.",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "off",
                                "none",
                                "builtin",
                                "shared"
                              ]
                            },
                            "name": {
                              "type": "string"
                            },
                            "size": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "reject_handshake": {
                          "description": "specifies whether reject all SSL handshake with a different server name (strict SNI check). Default is false.",
                          "type": "boolean"
                        },
                        "stapling": {
                          "description": "enables or disables stapling of OCSP responses by the server. Default - false.",
                          "type": "boolean"
                        },
                        "stapling_file": {
                          "description": "when set, the stapled OCSP response will be taken from the specified file instead of querying the OCSP responder specified in the server certificate.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "stapling_responder": {
                          "description": "overrides the URL of the OCSP responder specified in the “Authority Information Access” certificate extension.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "stapling_verify": {
                          "description": "enables or disables verification of OCSP responses by the server. For verification to work, the certificate of the server certificate issuer, the root certificate, and all intermediate certificates should be configured as trusted using the trusted_certificate directive. Default - false.",
                          "type": "boolean"
                        },
                        "trusted_certificate": {
                          "description": "specifies a file with trusted CA certificates in the PEM format used to verify client certificates and OCSP responses if stapling is enabled.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        }
                      },
                      "required": [
                        "certificate"
                      ],
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling_verify"
                            ],
                            "properties": {
                              "stapling_verify": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "then": {
                            "required": [
                              "trusted_certificate"
                            ]
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "verify_dn_trusted_path"
                            ],
                            "properties": {
                              "verify_dn_trusted_path": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "verify_client_error_code"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "verify_fingerprint_trusted_path"
                            ],
                            "properties": {
                              "verify_fingerprint_trusted_path": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "verify_client_error_code"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "ciphers_str"
                            ],
                            "properties": {
                              "ciphers_str": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "ciphers"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "ciphers"
                            ],
                            "properties": {
                              "ciphers": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "ciphers_str"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "certificate"
                            ],
                            "properties": {
                              "certificate": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_file"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_responder"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_verify"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling_verify"
                            ],
                            "properties": {
                              "stapling_verify": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "trusted_certificate"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              },
              "hostname": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "url": {
                "description": "Defines the relative URL by which the service will work.",
                "type": "string",
                "pattern": "^\\^?\\/.*\\$?$"
              },
              "response_headers": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "description": "Defines response header name.",
                      "type": "string",
                      "pattern": "^.+$"
                    },
                    "value": {
                      "description": "Defines response header value.",
                      "type": "string"
                    },
                    "value_from_header": {
                      "description": "Specifies request header name for setting it's value to the response header.",
                      "type": "string",
                      "pattern": "^.+$"
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "allOf": [
                    {
                      "if": {
                        "type": "object",
                        "required": [
                          "value_from_header"
                        ],
                        "properties": {
                          "value_from_header": {}
                        }
                      },
                      "else": {
                        "required": [
                          "value"
                        ]
                      }
                    },
                    {
                      "if": {
                        "type": "object",
                        "required": [
                          "value"
                        ],
                        "properties": {
                          "value": {}
                        }
                      },
                      "else": {
                        "required": [
                          "value_from_header"
                        ]
                      }
                    },
                    {
                      "if": {
                        "type": "object",
                        "required": [
                          "value_from_header"
                        ],
                        "properties": {
                          "value_from_header": {}
                        }
                      },
                      "then": {
                        "not": {
                          "required": [
                            "value"
                          ]
                        }
                      }
                    },
                    {
                      "if": {
                        "type": "object",
                        "required": [
                          "value"
                        ],
                        "properties": {
                          "value": {}
                        }
                      },
                      "then": {
                        "not": {
                          "required": [
                            "value_from_header"
                          ]
                        }
                      }
                    }
                  ]
                }
              },
              "download_file_folder": {
                "description": "The folder for saving file.",
                "type": [
                  "number",
                  "string"
                ],
                "pattern": "^(/[^/ ]*)+/?$"
              },
              "file_write_buffer_size": {
                "type": [
                  "number",
                  "string"
                ],
                "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
              },
              "drop_connection_emulator": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "drop_by_timeout": {
                    "description": "Sets timeout after wich connection will be dropped.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "drop_by_req_bytes": {
                    "description": "Sets connection dropping trigger by request bytes limit.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "drop_by_resp_bytes": {
                    "description": "Sets connection dropping trigger by response bytes limit.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "drop_by_total_bytes": {
                    "description": "Sets connection dropping trigger by total bytes limit.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  }
                }
              },
              "optional": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "keepalive_timeout": {
                    "description": "Defines a timeout duaring which a connection will stay open. The default value is \"1d\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "client_body_timeout": {
                    "description": "Sets the timeout for reading body from the client. The default value is \"1h\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "client_body_buffer_size": {
                    "description": "Sets buffer size for reading client request body. The default value is \"1m\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "opentelemetry": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "tracing": {
                        "description": "Defines parameters of Opentelemetry Tracing",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "mode": {
                            "description": "Enable or disable tracing at this level",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "enabled": {
                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "on",
                                  "off",
                                  "var_based"
                                ]
                              },
                              "var": {
                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            },
                            "allOf": [
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "enabled"
                                  ],
                                  "properties": {
                                    "enabled": {
                                      "const": "var_based"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "var"
                                  ]
                                }
                              }
                            ]
                          },
                          "trace_context": {
                            "description": "Specifies how to propagate traceparent/tracestate headers.   Default - ignore",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "extract",
                              "inject",
                              "propagate",
                              "ignore"
                            ]
                          },
                          "span_name": {
                            "description": "Defines the name of span. By default - name of location, can be contain variables",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "span_attr": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "description": "name of attribute",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "value": {
                                  "description": "value of attribute, can contain variables",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            ""
                          ],
                          "properties": {
                            "": {
                              "properties": {
                                "system": {
                                  "type": "object",
                                  "required": [
                                    "system"
                                  ],
                                  "properties": {
                                    "system": {},
                                    "optional": {
                                      "type": "object",
                                      "required": [
                                        "opentelemetry"
                                      ],
                                      "properties": {
                                        "opentelemetry": {
                                          "pattern": ".+"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "tracing"
                            ]
                          }
                        }
                      }
                    ]
                  }
                }
              }
            },
            "required": [
              "id",
              "url",
              "download_file_folder",
              "file_write_buffer_size"
            ]
          }
        },
        "service_stub_web_socket": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "Specifies the unique id for the service.",
                "type": [
                  "number",
                  "string"
                ],
                "pattern": "^[^.\\/\\\\()]+$"
              },
              "listen": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "address": {
                      "description": "specifies ip/hostname on which the socket will listen.",
                      "type": [
                        "number",
                        "string"
                      ]
                    },
                    "port": {
                      "description": "specifies port on which the socket will listen",
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 65535
                    },
                    "allow_http2": {
                      "description": "Allow to accept http2 connection. Default - false",
                      "type": "boolean"
                    },
                    "proxy_protocol": {
                      "description": "Accept proxy protocol. Http requests will not be handler with this flag. Default - false",
                      "type": "boolean"
                    },
                    "http2_only": {
                      "description": "Allow to pass only http2 protocol connection. Default - off",
                      "type": "string",
                      "enum": [
                        "on",
                        "off"
                      ]
                    },
                    "ssl": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "sspi": {
                          "description": "Enables GOST TLS mode. Default id false.",
                          "type": "boolean"
                        },
                        "client_verify_local_crl_only": {
                          "description": "GOST mode. Specifies whether to check the certificate status locally (otherwise check online). Default is \"off\" (online check).",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "buffer_size": {
                          "description": "GOST mode. Specifies payload length in TLS record (min 1024, max 16384). Default is 16384 bytes.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^([0-9]+[kK]{1})|([0-9]+)$"
                        },
                        "certificate": {
                          "description": "specifies name of the certificate wich will be used. Certificate must be placed in \"resource\" directory.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "certificate_key": {
                          "description": "specifies name of the certificate key wich will be used. Certificate key must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "password_file": {
                          "description": "specifies name of the password file with secret keys for \"certificate_key\". Password file must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "client_certificate": {
                          "description": "specifies name of the client certificate wich will be used. Client Certificate must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_client": {
                          "description": "Enables verification of client certificates. Default - no",
                          "type": "string"
                        },
                        "ocsp": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "enabled": {
                              "description": "Enables OCSP validation of the client certificate chain",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "depth": {
                              "description": "Specify depth of certificate validation.",
                              "type": "integer",
                              "minimum": 1
                            },
                            "mode": {
                              "description": "Specify mode. In strict mode request will be blocked in case unsuccessfull certiticate checking, in flexible mode - request will not be blocked. Strict by default.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "strict",
                                "flexible"
                              ]
                            },
                            "cache": {
                              "description": "Sets name and size of the cache that stores client certificates status for OCSP validation. The cache is shared between all worker processes",
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "size": {
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                },
                                "lifetime": {
                                  "description": "Specifies cache lifetime. 3600 seconds by default",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                                }
                              },
                              "required": [
                                "name",
                                "size"
                              ]
                            },
                            "use_cert_responder": {
                              "description": "Defines use or not responder from certificate(if specified). False by default",
                              "type": "boolean"
                            },
                            "responder_timeout": {
                              "description": "Specifies responder timeout. 60000 milliseconds by default",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                            },
                            "responders": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "regex;(.+)": {
                                  "type": "array",
                                  "uniqueItems": true,
                                  "items": {
                                    "description": "Specifies the URL of the OCSP responder specified in the “Authority Information Access” certificate extension for validation of client certificates. Only http:// OCSP responders are supported",
                                    "type": [
                                      "number",
                                      "string"
                                    ],
                                    "pattern": "^(?:http:\\/\\/).+$"
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "enabled",
                            "depth"
                          ]
                        },
                        "verify_dn_trusted_path": {
                          "description": "Turn on verification of client dn. Use this file to match all regex dn from this file with dn of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_client_error_code": {
                          "description": "Defines the response code if verification client certificate failed. Default value is \"495\"(400)",
                          "type": "integer"
                        },
                        "verify_fingerprint_trusted_path": {
                          "description": "Turn on verification of client fingerprint. Use this file to match all fingerprints from file with fingerprint of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_depth": {
                          "description": "Sets the verification depth in the client certificates chain. Default - 1",
                          "type": "integer"
                        },
                        "protocols": {
                          "description": "specifies used ciphers. The default value is \"LSv1 TLSv1.1 TLSv1.2\" for RSA, and \"TLSv1\" for GOST",
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string"
                          }
                        },
                        "ciphers": {
                          "description": "specifies group of ciphes. The default value is \"HIGH:!aNULL:!MD5\".",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "prefix": {
                                "type": "string",
                                "enum": [
                                  "!",
                                  "+",
                                  "-"
                                ]
                              },
                              "value": {
                                "type": "array",
                                "uniqueItems": true,
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "DEFAULT",
                                    "COMPLEMENTOFDEFAULT",
                                    "ALL",
                                    "COMPLEMENTOFALL",
                                    "HIGH",
                                    "MEDIUM",
                                    "LOW",
                                    "EXP",
                                    "EXPORT",
                                    "EXPORT40",
                                    "EXPORT56",
                                    "eNULL",
                                    "NULL",
                                    "aNULL",
                                    "kRSA",
                                    "RSA",
                                    "kDHr",
                                    "kDHd",
                                    "kDH",
                                    "kDHE",
                                    "kEDH",
                                    "DHE",
                                    "EDH",
                                    "ADH",
                                    "DH",
                                    "kECDHr",
                                    "kECDHe",
                                    "kECDH",
                                    "kECDHE",
                                    "kEECDH",
                                    "ECDHE",
                                    "EECDH",
                                    "AECDH",
                                    "ECDH",
                                    "aRSA",
                                    "aDSS",
                                    "DSS",
                                    "aDH",
                                    "aECDH",
                                    "aECDSA",
                                    "ECDSA",
                                    "kFZA",
                                    "aFZA",
                                    "eFZA",
                                    "FZA",
                                    "TLSv1.2",
                                    "TLSv1",
                                    "SSLv3",
                                    "SSLv2",
                                    "AES128",
                                    "AES256",
                                    "AES",
                                    "AESGCM",
                                    "CAMELLIA128",
                                    "CAMELLIA256",
                                    "CAMELLIA",
                                    "3DES",
                                    "DES",
                                    "RC4",
                                    "RC2",
                                    "IDEA",
                                    "SEED",
                                    "MD5",
                                    "SHA1",
                                    "SHA",
                                    "SHA256",
                                    "SHA384",
                                    "aGOST",
                                    "aGOST01",
                                    "aGOST94",
                                    "kGOST",
                                    "GOST94",
                                    "GOST89MAC",
                                    "PSK",
                                    "SUITEB128",
                                    "SUITEB128ONLY",
                                    "SUITEB192",
                                    "@STRENGTH",
                                    "NULL-SHA256"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "value"
                            ]
                          }
                        },
                        "ciphers_str": {
                          "description": "specifies string of ciphers.",
                          "type": "string"
                        },
                        "dhparam": {
                          "description": "Specifies a file with DH parameters for DHE ciphers and enable usage of DHE ciphers.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "session_timeout": {
                          "description": "specifies timeout of the ssl session. The default value is \"10m\"",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                        },
                        "session_cache": {
                          "description": "specifies cache size for ssl session. The default value evaluates automatically.",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "off",
                                "none",
                                "builtin",
                                "shared"
                              ]
                            },
                            "name": {
                              "type": "string"
                            },
                            "size": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "reject_handshake": {
                          "description": "specifies whether reject all SSL handshake with a different server name (strict SNI check). Default is false.",
                          "type": "boolean"
                        },
                        "stapling": {
                          "description": "enables or disables stapling of OCSP responses by the server. Default - false.",
                          "type": "boolean"
                        },
                        "stapling_file": {
                          "description": "when set, the stapled OCSP response will be taken from the specified file instead of querying the OCSP responder specified in the server certificate.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "stapling_responder": {
                          "description": "overrides the URL of the OCSP responder specified in the “Authority Information Access” certificate extension.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "stapling_verify": {
                          "description": "enables or disables verification of OCSP responses by the server. For verification to work, the certificate of the server certificate issuer, the root certificate, and all intermediate certificates should be configured as trusted using the trusted_certificate directive. Default - false.",
                          "type": "boolean"
                        },
                        "trusted_certificate": {
                          "description": "specifies a file with trusted CA certificates in the PEM format used to verify client certificates and OCSP responses if stapling is enabled.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        }
                      },
                      "required": [
                        "certificate"
                      ],
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling_verify"
                            ],
                            "properties": {
                              "stapling_verify": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "then": {
                            "required": [
                              "trusted_certificate"
                            ]
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "verify_dn_trusted_path"
                            ],
                            "properties": {
                              "verify_dn_trusted_path": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "verify_client_error_code"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "verify_fingerprint_trusted_path"
                            ],
                            "properties": {
                              "verify_fingerprint_trusted_path": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "verify_client_error_code"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "ciphers_str"
                            ],
                            "properties": {
                              "ciphers_str": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "ciphers"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "ciphers"
                            ],
                            "properties": {
                              "ciphers": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "ciphers_str"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "certificate"
                            ],
                            "properties": {
                              "certificate": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_file"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_responder"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_verify"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling_verify"
                            ],
                            "properties": {
                              "stapling_verify": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "trusted_certificate"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              },
              "hostname": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "url": {
                "description": "Defines the relative URL by which the service will work.",
                "type": "string",
                "pattern": "^\\^?\\/.*\\$?$"
              },
              "optional": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "keepalive_timeout": {
                    "description": "Defines a timeout duaring which a connection will stay open. The default value is \"1d\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  }
                }
              }
            },
            "required": [
              "id",
              "url"
            ]
          }
        },
        "service_stub_http": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "Specifies the unique id for the service.",
                "type": [
                  "number",
                  "string"
                ],
                "pattern": "^[^.\\/\\\\()]+$"
              },
              "listen": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "address": {
                      "description": "specifies ip/hostname on which the socket will listen.",
                      "type": [
                        "number",
                        "string"
                      ]
                    },
                    "port": {
                      "description": "specifies port on which the socket will listen",
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 65535
                    },
                    "allow_http2": {
                      "description": "Allow to accept http2 connection. Default - false",
                      "type": "boolean"
                    },
                    "proxy_protocol": {
                      "description": "Accept proxy protocol. Http requests will not be handler with this flag. Default - false",
                      "type": "boolean"
                    },
                    "http2_only": {
                      "description": "Allow to pass only http2 protocol connection. Default - off",
                      "type": "string",
                      "enum": [
                        "on",
                        "off"
                      ]
                    },
                    "ssl": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "sspi": {
                          "description": "Enables GOST TLS mode. Default id false.",
                          "type": "boolean"
                        },
                        "client_verify_local_crl_only": {
                          "description": "GOST mode. Specifies whether to check the certificate status locally (otherwise check online). Default is \"off\" (online check).",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "buffer_size": {
                          "description": "GOST mode. Specifies payload length in TLS record (min 1024, max 16384). Default is 16384 bytes.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^([0-9]+[kK]{1})|([0-9]+)$"
                        },
                        "certificate": {
                          "description": "specifies name of the certificate wich will be used. Certificate must be placed in \"resource\" directory.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "certificate_key": {
                          "description": "specifies name of the certificate key wich will be used. Certificate key must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "password_file": {
                          "description": "specifies name of the password file with secret keys for \"certificate_key\". Password file must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "client_certificate": {
                          "description": "specifies name of the client certificate wich will be used. Client Certificate must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_client": {
                          "description": "Enables verification of client certificates. Default - no",
                          "type": "string"
                        },
                        "ocsp": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "enabled": {
                              "description": "Enables OCSP validation of the client certificate chain",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "depth": {
                              "description": "Specify depth of certificate validation.",
                              "type": "integer",
                              "minimum": 1
                            },
                            "mode": {
                              "description": "Specify mode. In strict mode request will be blocked in case unsuccessfull certiticate checking, in flexible mode - request will not be blocked. Strict by default.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "strict",
                                "flexible"
                              ]
                            },
                            "cache": {
                              "description": "Sets name and size of the cache that stores client certificates status for OCSP validation. The cache is shared between all worker processes",
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "size": {
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                },
                                "lifetime": {
                                  "description": "Specifies cache lifetime. 3600 seconds by default",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                                }
                              },
                              "required": [
                                "name",
                                "size"
                              ]
                            },
                            "use_cert_responder": {
                              "description": "Defines use or not responder from certificate(if specified). False by default",
                              "type": "boolean"
                            },
                            "responder_timeout": {
                              "description": "Specifies responder timeout. 60000 milliseconds by default",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                            },
                            "responders": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "regex;(.+)": {
                                  "type": "array",
                                  "uniqueItems": true,
                                  "items": {
                                    "description": "Specifies the URL of the OCSP responder specified in the “Authority Information Access” certificate extension for validation of client certificates. Only http:// OCSP responders are supported",
                                    "type": [
                                      "number",
                                      "string"
                                    ],
                                    "pattern": "^(?:http:\\/\\/).+$"
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "enabled",
                            "depth"
                          ]
                        },
                        "verify_dn_trusted_path": {
                          "description": "Turn on verification of client dn. Use this file to match all regex dn from this file with dn of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_client_error_code": {
                          "description": "Defines the response code if verification client certificate failed. Default value is \"495\"(400)",
                          "type": "integer"
                        },
                        "verify_fingerprint_trusted_path": {
                          "description": "Turn on verification of client fingerprint. Use this file to match all fingerprints from file with fingerprint of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_depth": {
                          "description": "Sets the verification depth in the client certificates chain. Default - 1",
                          "type": "integer"
                        },
                        "protocols": {
                          "description": "specifies used ciphers. The default value is \"LSv1 TLSv1.1 TLSv1.2\" for RSA, and \"TLSv1\" for GOST",
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string"
                          }
                        },
                        "ciphers": {
                          "description": "specifies group of ciphes. The default value is \"HIGH:!aNULL:!MD5\".",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "prefix": {
                                "type": "string",
                                "enum": [
                                  "!",
                                  "+",
                                  "-"
                                ]
                              },
                              "value": {
                                "type": "array",
                                "uniqueItems": true,
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "DEFAULT",
                                    "COMPLEMENTOFDEFAULT",
                                    "ALL",
                                    "COMPLEMENTOFALL",
                                    "HIGH",
                                    "MEDIUM",
                                    "LOW",
                                    "EXP",
                                    "EXPORT",
                                    "EXPORT40",
                                    "EXPORT56",
                                    "eNULL",
                                    "NULL",
                                    "aNULL",
                                    "kRSA",
                                    "RSA",
                                    "kDHr",
                                    "kDHd",
                                    "kDH",
                                    "kDHE",
                                    "kEDH",
                                    "DHE",
                                    "EDH",
                                    "ADH",
                                    "DH",
                                    "kECDHr",
                                    "kECDHe",
                                    "kECDH",
                                    "kECDHE",
                                    "kEECDH",
                                    "ECDHE",
                                    "EECDH",
                                    "AECDH",
                                    "ECDH",
                                    "aRSA",
                                    "aDSS",
                                    "DSS",
                                    "aDH",
                                    "aECDH",
                                    "aECDSA",
                                    "ECDSA",
                                    "kFZA",
                                    "aFZA",
                                    "eFZA",
                                    "FZA",
                                    "TLSv1.2",
                                    "TLSv1",
                                    "SSLv3",
                                    "SSLv2",
                                    "AES128",
                                    "AES256",
                                    "AES",
                                    "AESGCM",
                                    "CAMELLIA128",
                                    "CAMELLIA256",
                                    "CAMELLIA",
                                    "3DES",
                                    "DES",
                                    "RC4",
                                    "RC2",
                                    "IDEA",
                                    "SEED",
                                    "MD5",
                                    "SHA1",
                                    "SHA",
                                    "SHA256",
                                    "SHA384",
                                    "aGOST",
                                    "aGOST01",
                                    "aGOST94",
                                    "kGOST",
                                    "GOST94",
                                    "GOST89MAC",
                                    "PSK",
                                    "SUITEB128",
                                    "SUITEB128ONLY",
                                    "SUITEB192",
                                    "@STRENGTH",
                                    "NULL-SHA256"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "value"
                            ]
                          }
                        },
                        "ciphers_str": {
                          "description": "specifies string of ciphers.",
                          "type": "string"
                        },
                        "dhparam": {
                          "description": "Specifies a file with DH parameters for DHE ciphers and enable usage of DHE ciphers.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "session_timeout": {
                          "description": "specifies timeout of the ssl session. The default value is \"10m\"",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                        },
                        "session_cache": {
                          "description": "specifies cache size for ssl session. The default value evaluates automatically.",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "off",
                                "none",
                                "builtin",
                                "shared"
                              ]
                            },
                            "name": {
                              "type": "string"
                            },
                            "size": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "reject_handshake": {
                          "description": "specifies whether reject all SSL handshake with a different server name (strict SNI check). Default is false.",
                          "type": "boolean"
                        },
                        "stapling": {
                          "description": "enables or disables stapling of OCSP responses by the server. Default - false.",
                          "type": "boolean"
                        },
                        "stapling_file": {
                          "description": "when set, the stapled OCSP response will be taken from the specified file instead of querying the OCSP responder specified in the server certificate.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "stapling_responder": {
                          "description": "overrides the URL of the OCSP responder specified in the “Authority Information Access” certificate extension.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "stapling_verify": {
                          "description": "enables or disables verification of OCSP responses by the server. For verification to work, the certificate of the server certificate issuer, the root certificate, and all intermediate certificates should be configured as trusted using the trusted_certificate directive. Default - false.",
                          "type": "boolean"
                        },
                        "trusted_certificate": {
                          "description": "specifies a file with trusted CA certificates in the PEM format used to verify client certificates and OCSP responses if stapling is enabled.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        }
                      },
                      "required": [
                        "certificate"
                      ],
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling_verify"
                            ],
                            "properties": {
                              "stapling_verify": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "then": {
                            "required": [
                              "trusted_certificate"
                            ]
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "verify_dn_trusted_path"
                            ],
                            "properties": {
                              "verify_dn_trusted_path": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "verify_client_error_code"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "verify_fingerprint_trusted_path"
                            ],
                            "properties": {
                              "verify_fingerprint_trusted_path": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "verify_client_error_code"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "ciphers_str"
                            ],
                            "properties": {
                              "ciphers_str": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "ciphers"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "ciphers"
                            ],
                            "properties": {
                              "ciphers": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "ciphers_str"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "certificate"
                            ],
                            "properties": {
                              "certificate": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_file"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_responder"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_verify"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling_verify"
                            ],
                            "properties": {
                              "stapling_verify": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "trusted_certificate"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              },
              "hostname": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "url": {
                "description": "Defines the relative URL by which the service will work.",
                "type": "string"
              },
              "content_type": {
                "type": "string"
              },
              "content_encoding": {
                "type": "string"
              },
              "response_code": {
                "type": "integer"
              },
              "response_body_data": {
                "description": "Raw body data.",
                "type": [
                  "number",
                  "string"
                ]
              },
              "response_file_body_data": {
                "description": "Relative path from profile_storage to the file with body data.",
                "type": [
                  "number",
                  "string"
                ]
              },
              "chunked": {
                "description": "Do generate chunked response",
                "type": "boolean"
              },
              "chunk_size": {
                "description": "size of chunk (default - 4096 bytes\"",
                "type": [
                  "number",
                  "string"
                ],
                "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
              },
              "generate_error_chunk": {
                "description": "generate invalide chunked body (only for tests) - by default false",
                "type": "boolean"
              },
              "response_headers": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "description": "Defines response header name.",
                      "type": "string",
                      "pattern": "^.+$"
                    },
                    "value": {
                      "description": "Defines response header value.",
                      "type": "string"
                    },
                    "value_from_header": {
                      "description": "Specifies request header name for setting it's value to the response header.",
                      "type": "string",
                      "pattern": "^.+$"
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "allOf": [
                    {
                      "if": {
                        "type": "object",
                        "required": [
                          "value_from_header"
                        ],
                        "properties": {
                          "value_from_header": {}
                        }
                      },
                      "else": {
                        "required": [
                          "value"
                        ]
                      }
                    },
                    {
                      "if": {
                        "type": "object",
                        "required": [
                          "value"
                        ],
                        "properties": {
                          "value": {}
                        }
                      },
                      "else": {
                        "required": [
                          "value_from_header"
                        ]
                      }
                    },
                    {
                      "if": {
                        "type": "object",
                        "required": [
                          "value_from_header"
                        ],
                        "properties": {
                          "value_from_header": {}
                        }
                      },
                      "then": {
                        "not": {
                          "required": [
                            "value"
                          ]
                        }
                      }
                    },
                    {
                      "if": {
                        "type": "object",
                        "required": [
                          "value"
                        ],
                        "properties": {
                          "value": {}
                        }
                      },
                      "then": {
                        "not": {
                          "required": [
                            "value_from_header"
                          ]
                        }
                      }
                    }
                  ]
                }
              },
              "response_timeout": {
                "description": "Specifies the waiting time before the response to the client.",
                "type": [
                  "number",
                  "string"
                ],
                "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
              },
              "drop_connection_emulator": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "drop_by_timeout": {
                    "description": "Sets timeout after wich connection will be dropped.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "drop_by_req_bytes": {
                    "description": "Sets connection dropping trigger by request bytes limit.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "drop_by_resp_bytes": {
                    "description": "Sets connection dropping trigger by response bytes limit.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "drop_by_total_bytes": {
                    "description": "Sets connection dropping trigger by total bytes limit.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  }
                }
              }
            },
            "required": [
              "id",
              "url",
              "content_type",
              "response_code"
            ],
            "allOf": [
              {
                "if": {
                  "type": "object",
                  "required": [
                    "response_file_body_data"
                  ],
                  "properties": {
                    "response_file_body_data": {}
                  }
                },
                "else": {
                  "required": [
                    "response_body_data"
                  ]
                }
              },
              {
                "if": {
                  "type": "object",
                  "required": [
                    "response_body_data"
                  ],
                  "properties": {
                    "response_body_data": {}
                  }
                },
                "else": {
                  "required": [
                    "response_file_body_data"
                  ]
                }
              },
              {
                "if": {
                  "type": "object",
                  "required": [
                    "response_file_body_data"
                  ],
                  "properties": {
                    "response_file_body_data": {}
                  }
                },
                "then": {
                  "not": {
                    "required": [
                      "response_body_data"
                    ]
                  }
                }
              },
              {
                "if": {
                  "type": "object",
                  "required": [
                    "response_body_data"
                  ],
                  "properties": {
                    "response_body_data": {}
                  }
                },
                "then": {
                  "not": {
                    "required": [
                      "response_file_body_data"
                    ]
                  }
                }
              }
            ]
          }
        },
        "service_healthcheck": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "Specifies the unique id for the service.",
                "type": [
                  "number",
                  "string"
                ],
                "pattern": "^[^.\\/\\\\()]+$"
              },
              "name": {
                "description": "Human readable Service identifier printed in log messages",
                "type": [
                  "number",
                  "string"
                ]
              },
              "profile_version": {
                "description": "Specifies profile version of this service",
                "type": [
                  "number",
                  "string"
                ]
              },
              "description": {
                "type": [
                  "number",
                  "string"
                ]
              },
              "listen": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "address": {
                      "description": "specifies ip/hostname on which the socket will listen.",
                      "type": [
                        "number",
                        "string"
                      ]
                    },
                    "port": {
                      "description": "specifies port on which the socket will listen",
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 65535
                    },
                    "allow_http2": {
                      "description": "Allow to accept http2 connection. Default - false",
                      "type": "boolean"
                    },
                    "proxy_protocol": {
                      "description": "Accept proxy protocol. Http requests will not be handler with this flag. Default - false",
                      "type": "boolean"
                    },
                    "http2_only": {
                      "description": "Allow to pass only http2 protocol connection. Default - off",
                      "type": "string",
                      "enum": [
                        "on",
                        "off"
                      ]
                    },
                    "ssl": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "sspi": {
                          "description": "Enables GOST TLS mode. Default id false.",
                          "type": "boolean"
                        },
                        "client_verify_local_crl_only": {
                          "description": "GOST mode. Specifies whether to check the certificate status locally (otherwise check online). Default is \"off\" (online check).",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "buffer_size": {
                          "description": "GOST mode. Specifies payload length in TLS record (min 1024, max 16384). Default is 16384 bytes.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^([0-9]+[kK]{1})|([0-9]+)$"
                        },
                        "certificate": {
                          "description": "specifies name of the certificate wich will be used. Certificate must be placed in \"resource\" directory.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "certificate_key": {
                          "description": "specifies name of the certificate key wich will be used. Certificate key must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "password_file": {
                          "description": "specifies name of the password file with secret keys for \"certificate_key\". Password file must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "client_certificate": {
                          "description": "specifies name of the client certificate wich will be used. Client Certificate must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_client": {
                          "description": "Enables verification of client certificates. Default - no",
                          "type": "string"
                        },
                        "ocsp": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "enabled": {
                              "description": "Enables OCSP validation of the client certificate chain",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "depth": {
                              "description": "Specify depth of certificate validation.",
                              "type": "integer",
                              "minimum": 1
                            },
                            "mode": {
                              "description": "Specify mode. In strict mode request will be blocked in case unsuccessfull certiticate checking, in flexible mode - request will not be blocked. Strict by default.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "strict",
                                "flexible"
                              ]
                            },
                            "cache": {
                              "description": "Sets name and size of the cache that stores client certificates status for OCSP validation. The cache is shared between all worker processes",
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "size": {
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                },
                                "lifetime": {
                                  "description": "Specifies cache lifetime. 3600 seconds by default",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                                }
                              },
                              "required": [
                                "name",
                                "size"
                              ]
                            },
                            "use_cert_responder": {
                              "description": "Defines use or not responder from certificate(if specified). False by default",
                              "type": "boolean"
                            },
                            "responder_timeout": {
                              "description": "Specifies responder timeout. 60000 milliseconds by default",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                            },
                            "responders": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "regex;(.+)": {
                                  "type": "array",
                                  "uniqueItems": true,
                                  "items": {
                                    "description": "Specifies the URL of the OCSP responder specified in the “Authority Information Access” certificate extension for validation of client certificates. Only http:// OCSP responders are supported",
                                    "type": [
                                      "number",
                                      "string"
                                    ],
                                    "pattern": "^(?:http:\\/\\/).+$"
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "enabled",
                            "depth"
                          ]
                        },
                        "verify_dn_trusted_path": {
                          "description": "Turn on verification of client dn. Use this file to match all regex dn from this file with dn of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_client_error_code": {
                          "description": "Defines the response code if verification client certificate failed. Default value is \"495\"(400)",
                          "type": "integer"
                        },
                        "verify_fingerprint_trusted_path": {
                          "description": "Turn on verification of client fingerprint. Use this file to match all fingerprints from file with fingerprint of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_depth": {
                          "description": "Sets the verification depth in the client certificates chain. Default - 1",
                          "type": "integer"
                        },
                        "protocols": {
                          "description": "specifies used ciphers. The default value is \"LSv1 TLSv1.1 TLSv1.2\" for RSA, and \"TLSv1\" for GOST",
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string"
                          }
                        },
                        "ciphers": {
                          "description": "specifies group of ciphes. The default value is \"HIGH:!aNULL:!MD5\".",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "prefix": {
                                "type": "string",
                                "enum": [
                                  "!",
                                  "+",
                                  "-"
                                ]
                              },
                              "value": {
                                "type": "array",
                                "uniqueItems": true,
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "DEFAULT",
                                    "COMPLEMENTOFDEFAULT",
                                    "ALL",
                                    "COMPLEMENTOFALL",
                                    "HIGH",
                                    "MEDIUM",
                                    "LOW",
                                    "EXP",
                                    "EXPORT",
                                    "EXPORT40",
                                    "EXPORT56",
                                    "eNULL",
                                    "NULL",
                                    "aNULL",
                                    "kRSA",
                                    "RSA",
                                    "kDHr",
                                    "kDHd",
                                    "kDH",
                                    "kDHE",
                                    "kEDH",
                                    "DHE",
                                    "EDH",
                                    "ADH",
                                    "DH",
                                    "kECDHr",
                                    "kECDHe",
                                    "kECDH",
                                    "kECDHE",
                                    "kEECDH",
                                    "ECDHE",
                                    "EECDH",
                                    "AECDH",
                                    "ECDH",
                                    "aRSA",
                                    "aDSS",
                                    "DSS",
                                    "aDH",
                                    "aECDH",
                                    "aECDSA",
                                    "ECDSA",
                                    "kFZA",
                                    "aFZA",
                                    "eFZA",
                                    "FZA",
                                    "TLSv1.2",
                                    "TLSv1",
                                    "SSLv3",
                                    "SSLv2",
                                    "AES128",
                                    "AES256",
                                    "AES",
                                    "AESGCM",
                                    "CAMELLIA128",
                                    "CAMELLIA256",
                                    "CAMELLIA",
                                    "3DES",
                                    "DES",
                                    "RC4",
                                    "RC2",
                                    "IDEA",
                                    "SEED",
                                    "MD5",
                                    "SHA1",
                                    "SHA",
                                    "SHA256",
                                    "SHA384",
                                    "aGOST",
                                    "aGOST01",
                                    "aGOST94",
                                    "kGOST",
                                    "GOST94",
                                    "GOST89MAC",
                                    "PSK",
                                    "SUITEB128",
                                    "SUITEB128ONLY",
                                    "SUITEB192",
                                    "@STRENGTH",
                                    "NULL-SHA256"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "value"
                            ]
                          }
                        },
                        "ciphers_str": {
                          "description": "specifies string of ciphers.",
                          "type": "string"
                        },
                        "dhparam": {
                          "description": "Specifies a file with DH parameters for DHE ciphers and enable usage of DHE ciphers.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "session_timeout": {
                          "description": "specifies timeout of the ssl session. The default value is \"10m\"",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                        },
                        "session_cache": {
                          "description": "specifies cache size for ssl session. The default value evaluates automatically.",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "off",
                                "none",
                                "builtin",
                                "shared"
                              ]
                            },
                            "name": {
                              "type": "string"
                            },
                            "size": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "reject_handshake": {
                          "description": "specifies whether reject all SSL handshake with a different server name (strict SNI check). Default is false.",
                          "type": "boolean"
                        },
                        "stapling": {
                          "description": "enables or disables stapling of OCSP responses by the server. Default - false.",
                          "type": "boolean"
                        },
                        "stapling_file": {
                          "description": "when set, the stapled OCSP response will be taken from the specified file instead of querying the OCSP responder specified in the server certificate.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "stapling_responder": {
                          "description": "overrides the URL of the OCSP responder specified in the “Authority Information Access” certificate extension.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "stapling_verify": {
                          "description": "enables or disables verification of OCSP responses by the server. For verification to work, the certificate of the server certificate issuer, the root certificate, and all intermediate certificates should be configured as trusted using the trusted_certificate directive. Default - false.",
                          "type": "boolean"
                        },
                        "trusted_certificate": {
                          "description": "specifies a file with trusted CA certificates in the PEM format used to verify client certificates and OCSP responses if stapling is enabled.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        }
                      },
                      "required": [
                        "certificate"
                      ],
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling_verify"
                            ],
                            "properties": {
                              "stapling_verify": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "then": {
                            "required": [
                              "trusted_certificate"
                            ]
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "verify_dn_trusted_path"
                            ],
                            "properties": {
                              "verify_dn_trusted_path": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "verify_client_error_code"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "verify_fingerprint_trusted_path"
                            ],
                            "properties": {
                              "verify_fingerprint_trusted_path": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "verify_client_error_code"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "ciphers_str"
                            ],
                            "properties": {
                              "ciphers_str": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "ciphers"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "ciphers"
                            ],
                            "properties": {
                              "ciphers": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "ciphers_str"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "certificate"
                            ],
                            "properties": {
                              "certificate": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_file"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_responder"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_verify"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling_verify"
                            ],
                            "properties": {
                              "stapling_verify": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "trusted_certificate"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              },
              "hostname": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "healthcheck_dynamic": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "initial_state_param_file": {
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                  },
                  "manual_state_var_refresh_interval": {
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "endpoints": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "url": {
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "response": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "code": {
                              "description": "Specifies an array of error codes by which templates will be generated.",
                              "type": "array",
                              "items": {
                                "type": "integer"
                              }
                            },
                            "pattern_file": {
                              "description": "Specifies pattern file which will be used as response body.",
                              "type": "string",
                              "enum": [
                                "hc_pattern_default.json",
                                "hc_pattern_profile_default.json",
                                "hc_pattern_service_default.json"
                              ]
                            },
                            "custom_pattern_file": {
                              "description": "Specifies rule file which describes how to fill pattern file.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "rules_file": {
                              "description": "Specifies rule file which describes how to fill pattern file. Default - rules file from system resources.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "content_type": {
                              "description": "Specifies content type for response header. Default - none.",
                              "type": "string"
                            }
                          }
                        },
                        "upstream_check_type": {
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "ANY_UPSTREAM_UP",
                            "ALL_UPSTREAM_UP",
                            "ANY_UPSTREAM_UP_OR_DRAIN",
                            "ALL_UPSTREAM_UP_OR_DRAIN"
                          ]
                        },
                        "service_id": {
                          "description": "Binded service id",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "upstream_filter": {
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "disable_access_log": {
                          "description": "Disable writing access log, by default -false",
                          "type": "boolean"
                        },
                        "disable_error_log": {
                          "description": "Disable writing error log, default false",
                          "type": "boolean"
                        },
                        "disable_gathering_stats": {
                          "description": "Disable gathering stat, default false",
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "url",
                        "response"
                      ]
                    }
                  }
                }
              },
              "filters": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "filter_mds": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Specifies to enable or disable MDS. Default is \"True\".",
                        "type": "boolean"
                      },
                      "aio": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "When specified true, dedicated thread will be used for request/response processing when its possible, value inherited from parent and may be overrite in child",
                            "type": "boolean"
                          },
                          "thread_pool_id": {
                            "description": "name of thread pool from section system/optional/thread_pools, value inherite from parent and may by override in child. Must be specified when aio is true",
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        }
                      },
                      "ignore_parent": {
                        "description": "Specifies ignore parent rules and settings or not",
                        "type": "boolean"
                      },
                      "debug": {
                        "type": "boolean"
                      },
                      "config": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "SecRuleEngine": {
                            "enum": [
                              true,
                              false,
                              "DetectionOnly"
                            ]
                          },
                          "SecRequestBodyAccess": {
                            "type": "boolean"
                          },
                          "SecRequestBodyLimit": {
                            "type": "integer"
                          },
                          "SecRequestBodyLimitAction": {
                            "type": "string"
                          },
                          "SecPcreMatchLimit": {
                            "type": "integer"
                          },
                          "SecPcreMatchLimitRecursion": {
                            "type": "integer"
                          },
                          "SecResponseBodyAccess": {
                            "type": "boolean"
                          },
                          "SecResponseBodyMimeType": {
                            "type": "string"
                          },
                          "SecResponseBodyLimit": {
                            "type": "integer"
                          },
                          "SecResponseBodyLimitAction": {
                            "type": "string"
                          },
                          "SecStreamOutBodyInspection": {
                            "type": "boolean"
                          },
                          "SecUploadKeepFiles": {
                            "type": "boolean"
                          },
                          "SecAuditEngine": {
                            "type": "string"
                          },
                          "SecAuditLogRelevantStatus": {
                            "type": "string"
                          },
                          "SecAuditLogParts": {
                            "type": "string"
                          },
                          "SecAuditLogType": {
                            "type": "string",
                            "enum": [
                              "Syslog",
                              "Serial",
                              "Concurrent",
                              "Kafka"
                            ]
                          },
                          "SecAuditSyslogHost": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditSyslogPort": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditSyslogProtocol": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "tcp",
                              "udp"
                            ]
                          },
                          "SecAuditSyslogConnectTimeout": {
                            "type": "integer"
                          },
                          "SecArgumentSeparator": {
                            "type": "string"
                          },
                          "SecCookieFormat": {
                            "type": "integer"
                          },
                          "SecUnicodeMapFile": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "file": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "code": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            },
                            "required": [
                              "file",
                              "code"
                            ]
                          },
                          "SecUseTransformCache": {
                            "type": "boolean"
                          },
                          "SecRequestTimeout": {
                            "type": "integer"
                          },
                          "SecPassSlowRequest": {
                            "type": "boolean"
                          },
                          "SecResponseTimeout": {
                            "type": "integer"
                          },
                          "SecPassSlowResponse": {
                            "type": "boolean"
                          },
                          "SecLogFullBodyOnTimeout": {
                            "type": "boolean"
                          },
                          "SecAuditKafkaBrokers": {
                            "description": "CSV list of brokers",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditKafkaTopic": {
                            "description": "topic to connect to",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditKafkaProtocol": {
                            "description": "connection protocol",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "plaintext",
                              "ssl"
                            ]
                          },
                          "SecAuditKafkaCertificate": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditKafkaKey": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditKafkaCa": {
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        },
                        "allOf": [
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestBodyLimitAction"
                              ],
                              "properties": {
                                "SecRequestBodyLimitAction": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecRequestBodyLimit"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestBodyLimit"
                              ],
                              "properties": {
                                "SecRequestBodyLimit": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecRequestBodyLimitAction"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseBodyLimitAction"
                              ],
                              "properties": {
                                "SecResponseBodyLimitAction": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecResponseBodyLimit"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseBodyLimit"
                              ],
                              "properties": {
                                "SecResponseBodyLimit": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecResponseBodyLimitAction"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecAuditLogType"
                              ],
                              "properties": {
                                "SecAuditLogType": {
                                  "const": "Kafka"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecAuditKafkaBrokers"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecAuditLogType"
                              ],
                              "properties": {
                                "SecAuditLogType": {
                                  "const": "Kafka"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecAuditKafkaTopic"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecAuditKafkaProtocol"
                              ],
                              "properties": {
                                "SecAuditKafkaProtocol": {
                                  "const": "ssl"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecAuditKafkaCertificate"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecAuditKafkaProtocol"
                              ],
                              "properties": {
                                "SecAuditKafkaProtocol": {
                                  "const": "ssl"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecAuditKafkaKey"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestBodyLimitAction"
                              ],
                              "properties": {
                                "SecRequestBodyLimitAction": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecRequestBodyLimit"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestBodyLimit"
                              ],
                              "properties": {
                                "SecRequestBodyLimit": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecRequestBodyLimitAction"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseBodyLimitAction"
                              ],
                              "properties": {
                                "SecResponseBodyLimitAction": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecResponseBodyLimit"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseBodyLimit"
                              ],
                              "properties": {
                                "SecResponseBodyLimit": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecResponseBodyLimitAction"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestTimeout"
                              ],
                              "properties": {
                                "SecRequestTimeout": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecPassSlowRequest"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseTimeout"
                              ],
                              "properties": {
                                "SecResponseTimeout": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecPassSlowResponse"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseTimeout"
                              ],
                              "properties": {
                                "SecResponseTimeout": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecLogFullBodyOnTimeout"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestTimeout"
                              ],
                              "properties": {
                                "SecRequestTimeout": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecLogFullBodyOnTimeout"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecAuditKafkaProtocol"
                              ],
                              "properties": {
                                "SecAuditKafkaProtocol": {
                                  "const": "ssl"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecAuditKafkaCa"
                                ]
                              }
                            }
                          }
                        ]
                      },
                      "rules": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "base",
                            "owasp-crs",
                            "comodo",
                            "sowa-mq",
                            "sowa-http",
                            "sowa-ws",
                            "sowa-ufs",
                            "sowa-kafka",
                            "sowa-http-reversed"
                          ]
                        }
                      },
                      "custom_rules": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              },
              "allowed_queries": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "method": {
                      "type": "string",
                      "enum": [
                        "get",
                        "head",
                        "post",
                        "put",
                        "options",
                        "trace",
                        "patch",
                        "delete"
                      ]
                    },
                    "decodeUrl": {
                      "description": "By default mds use url-decoded request parameters",
                      "type": "boolean"
                    },
                    "strict_params_check": {
                      "description": "False by default. Allows to block undescribed params and paramless requests.",
                      "type": "boolean"
                    },
                    "undescribed": {
                      "description": "False by default when no params, true when params present. Deny or pass request with undescribed request query params",
                      "type": "boolean"
                    },
                    "params": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "pattern": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^((?!\\(\\?i\\)|\\(\\?-i\\)).)*$"
                          }
                        },
                        "required": [
                          "name",
                          "pattern"
                        ]
                      }
                    }
                  },
                  "required": [
                    "method"
                  ]
                }
              },
              "optional": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "opentelemetry": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "tracing": {
                        "description": "Defines parameters of Opentelemetry Tracing",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "mode": {
                            "description": "Enable or disable tracing at this level",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "enabled": {
                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "on",
                                  "off",
                                  "var_based"
                                ]
                              },
                              "var": {
                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            },
                            "allOf": [
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "enabled"
                                  ],
                                  "properties": {
                                    "enabled": {
                                      "const": "var_based"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "var"
                                  ]
                                }
                              }
                            ]
                          },
                          "trace_context": {
                            "description": "Specifies how to propagate traceparent/tracestate headers.   Default - ignore",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "extract",
                              "inject",
                              "propagate",
                              "ignore"
                            ]
                          },
                          "span_name": {
                            "description": "Defines the name of span. By default - name of location, can be contain variables",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "span_attr": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "description": "name of attribute",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "value": {
                                  "description": "value of attribute, can contain variables",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            ""
                          ],
                          "properties": {
                            "": {
                              "properties": {
                                "system": {
                                  "type": "object",
                                  "required": [
                                    "system"
                                  ],
                                  "properties": {
                                    "system": {},
                                    "optional": {
                                      "type": "object",
                                      "required": [
                                        "opentelemetry"
                                      ],
                                      "properties": {
                                        "opentelemetry": {
                                          "pattern": ".+"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "tracing"
                            ]
                          }
                        }
                      }
                    ]
                  },
                  "log_level": {
                    "type": [
                      "number",
                      "string"
                    ],
                    "enum": [
                      "debug",
                      "info",
                      "notice",
                      "warn",
                      "error",
                      "crit",
                      "alert",
                      "off"
                    ]
                  },
                  "group_access_log": {
                    "description": "Specifies whether group or not the access log by status codes (2xx, 3xx, 4xx, 5xx, 404, 413, 429, 499, 500). Default is false.",
                    "type": "boolean"
                  },
                  "log_format": {
                    "description": "Specifies which format to use.",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "client_header_timeout": {
                    "description": "Sets the timeout for reading headers from the client. The default value is \"60s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "client_body_timeout": {
                    "description": "Sets the timeout for reading body from the client. The default value is \"60s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "keepalive_timeout": {
                    "description": "Defines a timeout duaring which a connection will stay open. The default value is \"75s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "keepalive_time": {
                    "description": "Limits the maximum time during which requests can be processed through one keep-alive connection. After this time is reached, the connection is closed following the subsequent request processing. By default -  timeout 1h",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "keepalive_requests": {
                    "description": "Sets the maximum number of the request duaring keep-alive timeiut. The default value is \"10000\".",
                    "type": "integer"
                  },
                  "send_timeout_to_client": {
                    "description": "Sets the timeout for sending answer to the client. The default value is \"60s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "pipelined_requests": {
                    "description": "Enables/disable pipelined requests, by default -on",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "http2_only": {
                    "description": "Allow to pass only http2 protocol connection. Default - off",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "upload_size_limit": {
                    "description": "Specifies maximum size of the request body. Parameter \"drop\" specifies whether drop connection or not.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "drop": {
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "enable": {
                        "description": "Enables limit request body. Default \"true\"",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "size"
                    ]
                  },
                  "set_variable": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "value": {
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "required": [
                        "name",
                        "value"
                      ]
                    }
                  },
                  "limit_req": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enable limit req module",
                        "type": "boolean"
                      },
                      "rate": {
                        "description": "The count of requests which will be handled per time interval.",
                        "type": "number"
                      },
                      "rate_interval": {
                        "description": "Time interval for request rate measuring. Specify 's' for second and 'm' for minute. By default is 's'. Hint - if you need '0.5r/s', you can specify '30r/m'.",
                        "type": "string",
                        "enum": [
                          "s",
                          "m"
                        ]
                      },
                      "size": {
                        "description": "Shared memory zone used to store the state of each IP address and how often it has accessed a request limited URL. The default value is \"10m\"",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})$"
                      },
                      "burst": {
                        "description": "Defines how many requests a client can make in excess of the rate. The default value is \"0\"",
                        "type": "integer"
                      },
                      "cpu_limit": {
                        "description": "Defines maximum CPU load percentage. After exceeding limit, all incoming connections will be declined.",
                        "type": "integer"
                      },
                      "mem_limit": {
                        "description": "Defines maximum memory load percentage. After exceeding limit, all incoming connections will be declined.",
                        "type": "integer"
                      },
                      "target": {
                        "description": "Specifies a target for check. You can use predefined values 'src_ip' and 'service' or any nginx variables using prefix '$' (e.g. $server_port).",
                        "type": "string",
                        "pattern": "^((src_ip)|(service)|(request_method)|(\\$[a-z_]+))$"
                      },
                      "policy_type": {
                        "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                        "type": "string",
                        "enum": [
                          "allow",
                          "forbid"
                        ]
                      },
                      "exclude_ip": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "nodelay": {
                        "description": "default false",
                        "type": "boolean"
                      },
                      "forbid_action": {
                        "description": "Specifies location on which will be redirected",
                        "type": "string"
                      },
                      "status_code": {
                        "description": "Defines the response code if the limit is exceeded. Default value is \"413\".",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "dry_run": {
                        "description": "Enables dry run mode. Default is off.",
                        "type": "boolean"
                      },
                      "condition": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "condition_var": {
                            "type": "string",
                            "pattern": "^\\$.+$"
                          },
                          "condition_value": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ifall",
                              "ifany",
                              "if"
                            ]
                          },
                          "expression": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "variable": {
                                  "type": "string",
                                  "pattern": "^\\$.+$"
                                },
                                "operation": {
                                  "type": "string",
                                  "enum": [
                                    ">=",
                                    "=",
                                    ">",
                                    "<",
                                    "<=",
                                    "!=",
                                    "~",
                                    "~*",
                                    "!~",
                                    "!~*",
                                    "-f",
                                    "!-f",
                                    "-d",
                                    "!-d",
                                    "-e",
                                    "!-e",
                                    "-x",
                                    "!-x"
                                  ]
                                },
                                "value": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "variable"
                              ]
                            }
                          }
                        },
                        "required": [
                          "condition_var",
                          "condition_value",
                          "type"
                        ]
                      }
                    },
                    "required": [
                      "enabled",
                      "target"
                    ]
                  },
                  "limit_requests": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enable limit req module",
                        "type": "boolean"
                      },
                      "status_code": {
                        "description": "Defines the response code if the limit is exceeded. Default value is \"413\".",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "dry_run": {
                        "description": "Enables dry run mode. Default is off.",
                        "type": "boolean"
                      },
                      "limit_req": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "rate": {
                              "description": "The count of requests which will be handled per time interval.",
                              "type": "number"
                            },
                            "rate_interval": {
                              "description": "Time interval for request rate measuring. Specify 's' for second and 'm' for minute. By default is 's'. Hint - if you need '0.5r/s', you can specify '30r/m'.",
                              "type": "string",
                              "enum": [
                                "s",
                                "m"
                              ]
                            },
                            "size": {
                              "description": "Shared memory zone used to store the state of each IP address and how often it has accessed a request limited URL. The default value is \"10m\"",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^([0-9]+[kKmM]{1})$"
                            },
                            "burst": {
                              "description": "Defines how many requests a client can make in excess of the rate. The default value is \"0\"",
                              "type": "integer"
                            },
                            "cpu_limit": {
                              "description": "Defines maximum CPU load percentage. After exceeding limit, all incoming connections will be declined.",
                              "type": "integer"
                            },
                            "mem_limit": {
                              "description": "Defines maximum memory load percentage. After exceeding limit, all incoming connections will be declined.",
                              "type": "integer"
                            },
                            "target": {
                              "description": "Specifies a target for check. You can use predefined values 'src_ip' and 'service' or any nginx variables using prefix '$' (e.g. $server_port).",
                              "type": "string",
                              "pattern": "^((src_ip)|(service)|(request_method)|(\\$[a-z_]+))$"
                            },
                            "policy_type": {
                              "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                              "type": "string",
                              "enum": [
                                "allow",
                                "forbid"
                              ]
                            },
                            "exclude_ip": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                              }
                            },
                            "nodelay": {
                              "description": "default false",
                              "type": "boolean"
                            },
                            "forbid_action": {
                              "description": "Specifies location on which will be redirected",
                              "type": "string"
                            },
                            "condition": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "condition_var": {
                                  "type": "string",
                                  "pattern": "^\\$.+$"
                                },
                                "condition_value": {
                                  "type": "string"
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "ifall",
                                    "ifany",
                                    "if"
                                  ]
                                },
                                "expression": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "variable": {
                                        "type": "string",
                                        "pattern": "^\\$.+$"
                                      },
                                      "operation": {
                                        "type": "string",
                                        "enum": [
                                          ">=",
                                          "=",
                                          ">",
                                          "<",
                                          "<=",
                                          "!=",
                                          "~",
                                          "~*",
                                          "!~",
                                          "!~*",
                                          "-f",
                                          "!-f",
                                          "-d",
                                          "!-d",
                                          "-e",
                                          "!-e",
                                          "-x",
                                          "!-x"
                                        ]
                                      },
                                      "value": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "variable"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "condition_var",
                                "condition_value",
                                "type"
                              ]
                            }
                          },
                          "required": [
                            "target"
                          ]
                        }
                      }
                    },
                    "required": [
                      "enabled",
                      "limit_req"
                    ]
                  },
                  "robot_mitigation": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enables defense against HTTP robot attacks.",
                        "type": "boolean"
                      },
                      "blacklist": {
                        "description": "Means if a client has failed for N times, this client will be added into blacklist. Default 5",
                        "type": "integer"
                      },
                      "mode": {
                        "description": "Robot Mitigation will return a user-defined js code or predefined flash file to the client. Default js",
                        "type": "string",
                        "enum": [
                          "js",
                          "swf"
                        ]
                      },
                      "timeout": {
                        "description": "Sets the time for the next challenge to be initiated, in seconds. Default 60",
                        "type": "integer"
                      },
                      "ajax": {
                        "description": "This directive sets if challenge for ajax requests based on XMLRequest header. Default off",
                        "type": "boolean"
                      },
                      "policy_type": {
                        "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                        "type": "string",
                        "enum": [
                          "allow",
                          "forbid"
                        ]
                      },
                      "exclude_ip": {
                        "description": "Specifies the IP addresses, which will be excluded from whitelist",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "ua_whitelist": {
                        "description": "This directives specifies the User-Agent whitelist.",
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "ip_behavior": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "sample_base": {
                        "description": "Specifies the number of the request for a valid sample",
                        "type": "number"
                      },
                      "size": {
                        "description": "Size means how much memory will use by zone. The default value is \"10m\"",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})$"
                      },
                      "sample_cycle": {
                        "description": "Specifies the cyclog of the sampling, unit could be s (for second) and m (for minute).",
                        "type": "string",
                        "pattern": "^([0-9]+[mMsS]{1})$"
                      },
                      "sensitive": {
                        "description": "Specifies sensitive locations. If a location is defined as a sensitive location, all the resources under this location will be treated as sensitive. Default false",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "sample_base",
                      "size",
                      "sample_cycle"
                    ]
                  },
                  "cookie_poisoning": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enables monitoring the Set-Cookies headers and the cookie values in the response from server side.",
                        "type": "boolean"
                      },
                      "action": {
                        "description": "This directive specifies the action when cookie values are detected changed.  Default block",
                        "type": "string",
                        "pattern": "^block|pass|remove|blacklist,[0-9]+$"
                      },
                      "log": {
                        "type": "boolean"
                      },
                      "policy_type": {
                        "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                        "type": "string",
                        "enum": [
                          "allow",
                          "forbid"
                        ]
                      },
                      "exclude_ip": {
                        "description": "Specifies the IP addresses, which will be excluded from whitelist",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "include_ip": {
                        "description": "Specifies the IP addresses, which will be included to whitelist",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "ua_whitelist": {
                        "description": "This directives specifies the User-Agent whitelist.",
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "limit_conn": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enable limit conn module",
                        "type": "boolean"
                      },
                      "count": {
                        "description": "The count of connections which will be handled.",
                        "type": "number"
                      },
                      "size": {
                        "description": "Shared memory zone used to store the state of each target and how often it has create connection. The default value is \"10m\"",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})$"
                      },
                      "target": {
                        "description": "Specifies a target for check.",
                        "type": "string"
                      },
                      "status_code": {
                        "description": "Defines the response code if the limit is exceeded. Default value is \"503\".",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "dry_run": {
                        "description": "Enables dry run mode. Default is off.",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "enabled",
                      "count",
                      "target"
                    ]
                  },
                  "client_body_buffer_size": {
                    "description": "Sets buffer size for reading client request body. Default By default, buffer size is equal to two memory pages. For x86 it is usually 8K.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "client_body_in_file_only": {
                    "description": "Determines whether nginx should save the entire client request body into a file. By default is off.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off",
                      "clean"
                    ]
                  },
                  "client_body_in_single_buffer": {
                    "description": "Determines whether nginx should save the entire client request body in a single buffer. By default is off.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "client_header_buffer_size": {
                    "description": "Sets buffer size for reading client request header. By default is 1k.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "large_client_header_buffers": {
                    "description": "Sets the maximum number and size of buffers used for reading large client request header. By default the number is 4, the size is 4k.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "number": {
                        "type": "integer"
                      },
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      }
                    },
                    "required": [
                      "number",
                      "size"
                    ]
                  },
                  "output_buffers": {
                    "description": "Sets the number and size of the buffers used for reading a response from a disk. By default the number is 2, the size is 32k.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "number": {
                        "type": "integer"
                      },
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      }
                    },
                    "required": [
                      "number",
                      "size"
                    ]
                  },
                  "subrequest_output_buffer_size": {
                    "description": "Sets the size of the buffer used for storing the response body of a subrequest. By default, the buffer size is equal to one memory page.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_buffer_size": {
                    "description": "Sets the size of the buffer used for reading the first part of the response received from the proxied server. By default, the buffer size is equal to one memory page.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_buffering": {
                    "description": "Enables or disables buffering of responses from the proxied server. By default is on.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "proxy_buffers": {
                    "description": "Sets the number and size of the buffers used for reading a response from the proxied server, for a single connection. By default the number is 8, the size is equal to one memory page.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "number": {
                        "type": "integer"
                      },
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      }
                    },
                    "required": [
                      "number",
                      "size"
                    ]
                  },
                  "proxy_busy_buffers_size": {
                    "description": "When buffering of responses from the proxied server is enabled, limits the total size of buffers that can be busy sending a response to the client while the response is not yet fully read. By default, size is limited by the size of two buffers set by the proxy_buffer_size and proxy_buffers directives.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_request_buffering": {
                    "description": "Enables or disables buffering of a client request body. By default is on.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "proxy_max_temp_file_size": {
                    "description": "When buffering of responses from the proxied server is enabled, and the whole response does not fit into the buffers set by the proxy_buffer_size and proxy_buffers directives, a part of the response can be saved to a temporary file. This directive sets the maximum size of the temporary file. The size of data written to the temporary file at a time is set by the proxy_temp_file_write_size directive. The zero value disables buffering of responses to temporary files.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_temp_file_write_size": {
                    "description": "Limits the size of data written to a temporary file at a time, when buffering of responses from the proxied server to temporary files is enabled. By default, size is limited by two buffers set by the proxy_buffer_size and proxy_buffers directives. The maximum size of a temporary file is set by the proxy_max_temp_file_size directive.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_max_downstream_presend_inmemory_size": {
                    "description": "When used body filters such Modsecurity or Response size body filter, we always read all upstream data before sending client. Setting this parameter adjust maximum data in memory size, if 0 specified limit is not setted",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "log_type": {
                    "description": "Specifies logging mode for sowa-nginx. Default mode - file.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "kafka": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "group": {
                              "description": "Specifies which group of logs will use current settings.",
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "system",
                                  "error",
                                  "access"
                                ]
                              }
                            },
                            "id": {
                              "description": "Specifies client.id.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "broker": {
                              "description": "Initial list of brokers as a host:port separated by comma.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "topic": {
                              "description": "Specifies topic name.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^\\S*$"
                            },
                            "protocol": {
                              "description": "Specifies connection protocol. Plaintext by default.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "plaintext",
                                "ssl"
                              ]
                            },
                            "certificate": {
                              "description": "Specifies ssl.certificate.location",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "ca": {
                              "description": "Specifies ssl.ca.location.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "key": {
                              "description": "Specifies ssl.key.location.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "ciphers": {
                              "description": "Specifies ssl.cipher.suites. Same as default ssl ciphers.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "compression_codec": {
                              "description": "Compression codec to use for compressing message sets.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "none",
                                "gzip",
                                "snappy",
                                "lz4",
                                "zstd"
                              ]
                            },
                            "compression_level": {
                              "description": "Compression level parameter for algorithm selected by configuration property compression.codec. Higher values will result in better compression at the cost of more CPU usage.",
                              "type": "integer",
                              "minimum": -1,
                              "maximum": 12
                            },
                            "log_level": {
                              "description": "Logging level (syslog(3) levels).",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "debug": {
                              "description": "A comma-separated list of debug contexts to enable.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "max_messages": {
                              "description": "Maximum number of messages batched in one MessageSet.",
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 1000000
                            },
                            "pattern_file": {
                              "description": "Template file with custom log structure.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "escape": {
                              "description": "Defines if you need to escape variables used in pattern file.",
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "broker",
                            "topic"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "certificate"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "ca"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "key"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ciphers"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      },
                      "syslog": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "group": {
                              "description": "Specifies which group of logs will use current settings.",
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "system",
                                  "error",
                                  "access"
                                ]
                              }
                            },
                            "log_host": {
                              "description": "Specifies host for remote logging to syslog.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "log_port": {
                              "description": "Specifies port for remote logging to syslog. Default port - 514.",
                              "type": [
                                "number",
                                "string"
                              ]
                            }
                          }
                        }
                      },
                      "file": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "group": {
                              "description": "Specifies which group of logs will use current settings.",
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "system",
                                  "error",
                                  "access"
                                ]
                              }
                            }
                          }
                        }
                      },
                      "security": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Enables logging security security events (XSD, JSON, WSDL and other validators). False by default.",
                            "type": "boolean"
                          },
                          "threads_count": {
                            "description": "Specifies count of threads for thread pool, used for sending security events to syslog. Default is 16",
                            "type": "integer"
                          },
                          "hostname": {
                            "description": "Specifies hostname to dispaly in syslog event. Default is current hostname.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "appname": {
                            "description": "Specifies application name to dispaly in syslog event. Default is \"sowa-security\".",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "facility": {
                            "description": "Specifies facility for syslog event. Default is USER.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "KERN",
                              "USER",
                              "MAIL",
                              "DAEMON",
                              "AUTH",
                              "SYSLOG",
                              "LPR",
                              "NEWS",
                              "UUCP",
                              "CRON",
                              "AUTHPRIV",
                              "FTP",
                              "NTP",
                              "AUDIT",
                              "ALERT",
                              "CLOCK",
                              "LOCAL0",
                              "LOCAL1",
                              "LOCAL2",
                              "LOCAL3",
                              "LOCAL4",
                              "LOCAL5",
                              "LOCAL6",
                              "LOCAL7"
                            ]
                          },
                          "severity": {
                            "description": "Specifies severity for syslog event. Default is INFORMATIONAL.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "EMERGENCY",
                              "ALERT",
                              "CRITICAL",
                              "ERROR",
                              "WARNING",
                              "NOTICE",
                              "INFORMATIONAL",
                              "DEBUG"
                            ]
                          },
                          "target_host": {
                            "description": "Specifies host to send syslog event. Default is \"127.0.0.1\"",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "target_port": {
                            "description": "Specifies port to send syslog event. Default is 514.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 65535
                          },
                          "protocol": {
                            "description": "Specifies used protocol to send syslog event. Default is UDP.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "UDP",
                              "TCP"
                            ]
                          },
                          "msg_format": {
                            "description": "Specifies message format to send syslog event. Default is RFC_3164",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "RFC_3164",
                              "RFC_5424",
                              "RFC_5425"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "allOf": [
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "limit_requests"
                      ],
                      "properties": {
                        "limit_requests": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "limit_req"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "limit_req"
                      ],
                      "properties": {
                        "limit_req": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "limit_requests"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_buffering"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_buffers"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_busy_buffers_size"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_request_buffering"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_max_temp_file_size"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_temp_file_write_size"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_max_downstream_presend_inmemory_size"
                        ]
                      }
                    }
                  }
                ]
              }
            },
            "required": [
              "id"
            ],
            "allOf": [
              {
                "if": {
                  "type": "object",
                  "required": [
                    ".."
                  ],
                  "properties": {
                    "..": {
                      "type": "object",
                      "required": [
                        "listen"
                      ],
                      "properties": {
                        "listen": {
                          "pattern": ".+"
                        }
                      }
                    }
                  }
                },
                "else": {
                  "not": {
                    "required": [
                      "healthcheck_dynamic"
                    ]
                  }
                }
              }
            ]
          }
        },
        "service_main_proxy": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "Specifies the unique id for the service.",
                "type": [
                  "number",
                  "string"
                ],
                "pattern": "^[^.\\/\\\\()]+$"
              },
              "name": {
                "type": [
                  "number",
                  "string"
                ]
              },
              "description": {
                "type": [
                  "number",
                  "string"
                ]
              },
              "listen": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "address": {
                      "description": "specifies ip/hostname on which the socket will listen.",
                      "type": [
                        "number",
                        "string"
                      ]
                    },
                    "port": {
                      "description": "specifies port on which the socket will listen",
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 65535
                    },
                    "allow_http2": {
                      "description": "Allow to accept http2 connection. Default - false",
                      "type": "boolean"
                    },
                    "proxy_protocol": {
                      "description": "Accept proxy protocol. Http requests will not be handler with this flag. Default - false",
                      "type": "boolean"
                    },
                    "http2_only": {
                      "description": "Allow to pass only http2 protocol connection. Default - off",
                      "type": "string",
                      "enum": [
                        "on",
                        "off"
                      ]
                    },
                    "ssl": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "sspi": {
                          "description": "Enables GOST TLS mode. Default id false.",
                          "type": "boolean"
                        },
                        "client_verify_local_crl_only": {
                          "description": "GOST mode. Specifies whether to check the certificate status locally (otherwise check online). Default is \"off\" (online check).",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "buffer_size": {
                          "description": "GOST mode. Specifies payload length in TLS record (min 1024, max 16384). Default is 16384 bytes.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^([0-9]+[kK]{1})|([0-9]+)$"
                        },
                        "certificate": {
                          "description": "specifies name of the certificate wich will be used. Certificate must be placed in \"resource\" directory.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "certificate_key": {
                          "description": "specifies name of the certificate key wich will be used. Certificate key must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "password_file": {
                          "description": "specifies name of the password file with secret keys for \"certificate_key\". Password file must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "client_certificate": {
                          "description": "specifies name of the client certificate wich will be used. Client Certificate must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_client": {
                          "description": "Enables verification of client certificates. Default - no",
                          "type": "string"
                        },
                        "ocsp": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "enabled": {
                              "description": "Enables OCSP validation of the client certificate chain",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "depth": {
                              "description": "Specify depth of certificate validation.",
                              "type": "integer",
                              "minimum": 1
                            },
                            "mode": {
                              "description": "Specify mode. In strict mode request will be blocked in case unsuccessfull certiticate checking, in flexible mode - request will not be blocked. Strict by default.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "strict",
                                "flexible"
                              ]
                            },
                            "cache": {
                              "description": "Sets name and size of the cache that stores client certificates status for OCSP validation. The cache is shared between all worker processes",
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "size": {
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                },
                                "lifetime": {
                                  "description": "Specifies cache lifetime. 3600 seconds by default",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                                }
                              },
                              "required": [
                                "name",
                                "size"
                              ]
                            },
                            "use_cert_responder": {
                              "description": "Defines use or not responder from certificate(if specified). False by default",
                              "type": "boolean"
                            },
                            "responder_timeout": {
                              "description": "Specifies responder timeout. 60000 milliseconds by default",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                            },
                            "responders": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "regex;(.+)": {
                                  "type": "array",
                                  "uniqueItems": true,
                                  "items": {
                                    "description": "Specifies the URL of the OCSP responder specified in the “Authority Information Access” certificate extension for validation of client certificates. Only http:// OCSP responders are supported",
                                    "type": [
                                      "number",
                                      "string"
                                    ],
                                    "pattern": "^(?:http:\\/\\/).+$"
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "enabled",
                            "depth"
                          ]
                        },
                        "verify_dn_trusted_path": {
                          "description": "Turn on verification of client dn. Use this file to match all regex dn from this file with dn of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_client_error_code": {
                          "description": "Defines the response code if verification client certificate failed. Default value is \"495\"(400)",
                          "type": "integer"
                        },
                        "verify_fingerprint_trusted_path": {
                          "description": "Turn on verification of client fingerprint. Use this file to match all fingerprints from file with fingerprint of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_depth": {
                          "description": "Sets the verification depth in the client certificates chain. Default - 1",
                          "type": "integer"
                        },
                        "protocols": {
                          "description": "specifies used ciphers. The default value is \"LSv1 TLSv1.1 TLSv1.2\" for RSA, and \"TLSv1\" for GOST",
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string"
                          }
                        },
                        "ciphers": {
                          "description": "specifies group of ciphes. The default value is \"HIGH:!aNULL:!MD5\".",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "prefix": {
                                "type": "string",
                                "enum": [
                                  "!",
                                  "+",
                                  "-"
                                ]
                              },
                              "value": {
                                "type": "array",
                                "uniqueItems": true,
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "DEFAULT",
                                    "COMPLEMENTOFDEFAULT",
                                    "ALL",
                                    "COMPLEMENTOFALL",
                                    "HIGH",
                                    "MEDIUM",
                                    "LOW",
                                    "EXP",
                                    "EXPORT",
                                    "EXPORT40",
                                    "EXPORT56",
                                    "eNULL",
                                    "NULL",
                                    "aNULL",
                                    "kRSA",
                                    "RSA",
                                    "kDHr",
                                    "kDHd",
                                    "kDH",
                                    "kDHE",
                                    "kEDH",
                                    "DHE",
                                    "EDH",
                                    "ADH",
                                    "DH",
                                    "kECDHr",
                                    "kECDHe",
                                    "kECDH",
                                    "kECDHE",
                                    "kEECDH",
                                    "ECDHE",
                                    "EECDH",
                                    "AECDH",
                                    "ECDH",
                                    "aRSA",
                                    "aDSS",
                                    "DSS",
                                    "aDH",
                                    "aECDH",
                                    "aECDSA",
                                    "ECDSA",
                                    "kFZA",
                                    "aFZA",
                                    "eFZA",
                                    "FZA",
                                    "TLSv1.2",
                                    "TLSv1",
                                    "SSLv3",
                                    "SSLv2",
                                    "AES128",
                                    "AES256",
                                    "AES",
                                    "AESGCM",
                                    "CAMELLIA128",
                                    "CAMELLIA256",
                                    "CAMELLIA",
                                    "3DES",
                                    "DES",
                                    "RC4",
                                    "RC2",
                                    "IDEA",
                                    "SEED",
                                    "MD5",
                                    "SHA1",
                                    "SHA",
                                    "SHA256",
                                    "SHA384",
                                    "aGOST",
                                    "aGOST01",
                                    "aGOST94",
                                    "kGOST",
                                    "GOST94",
                                    "GOST89MAC",
                                    "PSK",
                                    "SUITEB128",
                                    "SUITEB128ONLY",
                                    "SUITEB192",
                                    "@STRENGTH",
                                    "NULL-SHA256"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "value"
                            ]
                          }
                        },
                        "ciphers_str": {
                          "description": "specifies string of ciphers.",
                          "type": "string"
                        },
                        "dhparam": {
                          "description": "Specifies a file with DH parameters for DHE ciphers and enable usage of DHE ciphers.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "session_timeout": {
                          "description": "specifies timeout of the ssl session. The default value is \"10m\"",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                        },
                        "session_cache": {
                          "description": "specifies cache size for ssl session. The default value evaluates automatically.",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "off",
                                "none",
                                "builtin",
                                "shared"
                              ]
                            },
                            "name": {
                              "type": "string"
                            },
                            "size": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "reject_handshake": {
                          "description": "specifies whether reject all SSL handshake with a different server name (strict SNI check). Default is false.",
                          "type": "boolean"
                        },
                        "stapling": {
                          "description": "enables or disables stapling of OCSP responses by the server. Default - false.",
                          "type": "boolean"
                        },
                        "stapling_file": {
                          "description": "when set, the stapled OCSP response will be taken from the specified file instead of querying the OCSP responder specified in the server certificate.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "stapling_responder": {
                          "description": "overrides the URL of the OCSP responder specified in the “Authority Information Access” certificate extension.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "stapling_verify": {
                          "description": "enables or disables verification of OCSP responses by the server. For verification to work, the certificate of the server certificate issuer, the root certificate, and all intermediate certificates should be configured as trusted using the trusted_certificate directive. Default - false.",
                          "type": "boolean"
                        },
                        "trusted_certificate": {
                          "description": "specifies a file with trusted CA certificates in the PEM format used to verify client certificates and OCSP responses if stapling is enabled.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        }
                      },
                      "required": [
                        "certificate"
                      ],
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling_verify"
                            ],
                            "properties": {
                              "stapling_verify": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "then": {
                            "required": [
                              "trusted_certificate"
                            ]
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "verify_dn_trusted_path"
                            ],
                            "properties": {
                              "verify_dn_trusted_path": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "verify_client_error_code"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "verify_fingerprint_trusted_path"
                            ],
                            "properties": {
                              "verify_fingerprint_trusted_path": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "verify_client_error_code"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "ciphers_str"
                            ],
                            "properties": {
                              "ciphers_str": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "ciphers"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "ciphers"
                            ],
                            "properties": {
                              "ciphers": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "ciphers_str"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "certificate"
                            ],
                            "properties": {
                              "certificate": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_file"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_responder"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_verify"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling_verify"
                            ],
                            "properties": {
                              "stapling_verify": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "trusted_certificate"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              },
              "hostname": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "url": {
                "description": "Defines the relative URL by which the service will work.",
                "type": "string"
              },
              "use_upstream_groups": {
                "description": "Enables balancing on the main service level itself. The default value is \"False\".",
                "type": "boolean"
              },
              "use_main_upstream_groups": {
                "description": "Defines whether to use upstream groups from main proxy.",
                "type": "boolean"
              },
              "upstream_group_id": {
                "description": "Specifies ID of the upstream group.",
                "type": [
                  "number",
                  "string"
                ]
              },
              "upstream_bind_variable": {
                "description": "Specifies a variable that is used to bind upstream group along with \"bind_condition\".",
                "type": "string"
              },
              "upstream_groups": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "description": "Specifies the unique id for the upstream group.",
                      "type": [
                        "number",
                        "string"
                      ],
                      "pattern": "^[^.\\/\\\\()-]+$"
                    },
                    "ssl": {
                      "description": "Specifies the type of connection - http or https. The default value is \"http\"",
                      "type": "boolean"
                    },
                    "rewrite_uri": {
                      "description": "Allows you to replace the URL which is going to the backend.",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "from": {
                            "description": "Specify a regular expression that matches the URI.",
                            "type": "string"
                          },
                          "to": {
                            "description": "Specify string to replace URI that matches regular expression in parameter \"from\". You can use substitutions (like this $1, $2, etc.) according your regular expression.",
                            "type": "string"
                          }
                        },
                        "required": [
                          "from",
                          "to"
                        ]
                      }
                    },
                    "bind_context": {
                      "description": "Specifies bind context condition pattern. Used when \"use_upstream_groups=True\" in main proxy service.",
                      "type": "string",
                      "pattern": "^\\^.*\\$$"
                    },
                    "bind_condition": {
                      "description": "Specifies a variable value that will be used as bind condition for this upstream group. If you use this parameter and you have several upstream groups, then one of them should be declared as default.",
                      "type": "string"
                    },
                    "default": {
                      "description": "Specifies that this upstream group is default. Used along with bind_condition.",
                      "type": "boolean"
                    },
                    "zone": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "description": "Define the name of upstream zone",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "size": {
                          "description": "Define the size of upstream zone. Default 1m",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                        }
                      },
                      "required": [
                        "name"
                      ]
                    },
                    "keepalive_conn_count": {
                      "description": "Defines maximum count of keepalive connections to upstream group per worker process.",
                      "type": "integer"
                    },
                    "keepalive_requests": {
                      "description": "Defines maximum count of requests per connection. 100 by default.",
                      "type": "integer"
                    },
                    "keepalive_timeout": {
                      "description": "Defines a timeout during which a connection will stay open. The default value is \"60s\".",
                      "type": [
                        "number",
                        "string"
                      ],
                      "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                    },
                    "health_check": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "enabled": {
                          "description": "Enable health_check module",
                          "type": "boolean"
                        },
                        "check_interval": {
                          "description": "Specifies check request's interval time in milliseconds.",
                          "type": "integer"
                        },
                        "check_interval_down": {
                          "description": "Specifies check request's interval time if peer is down.",
                          "type": "integer"
                        },
                        "fail_count": {
                          "description": "Specifies number of failed requests to mark server as down.",
                          "type": "integer"
                        },
                        "rise_count": {
                          "description": "Specifies number of successful requests to mark server as down.",
                          "type": "integer"
                        },
                        "drain": {
                          "description": "Specifies number of failed requests to mark server as drain.",
                          "type": "integer"
                        },
                        "timeout": {
                          "description": "Specifies check request's timeout.",
                          "type": "integer"
                        },
                        "default_state": {
                          "description": "Specifies default server state.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "up",
                            "down"
                          ]
                        },
                        "port": {
                          "description": "Specifies port to send check requests.",
                          "type": "integer"
                        },
                        "type": {
                          "description": "Specifies check request type.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "tcp",
                            "ssl_hello",
                            "http",
                            "mysql",
                            "ajp",
                            "fastcgi"
                          ]
                        },
                        "http_send_method": {
                          "description": "Specifies http method, default POST if http_send_req is defined, GET otherwise",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "GET",
                            "POST"
                          ]
                        },
                        "http_send_url": {
                          "description": "Specifies url for health check, default \"/\"",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^\\/.*$"
                        },
                        "http_send_version": {
                          "description": "Specifies http version, default 1.0",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            1.0,
                            1.1,
                            2.0
                          ]
                        },
                        "http_send_headers": {
                          "description": "Specifies request header line. For example 'X-MyHeader foo'.",
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "http_send_req": {
                          "description": "Specifies request body. (Deprecated - Specifies which req to send when check type is http)",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "fastcgi_param": {
                          "description": "Specifies which headers to send with fastcgi req",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "http_status_alive": {
                          "description": "Specifies which response code is ok",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "check_shm_size": {
                          "description": "Specifies shared memory size for checking large groups of servers",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "check_response_body": {
                          "description": "case insensitive search in resp body",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "check_response_body_pattern": {
                          "description": "case insensitive search in resp body by pattern",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "check_response_body_drain": {
                          "description": "case insensitive search in resp body",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "check_response_body_drain_pattern": {
                          "description": "case insensitive search in resp body by pattern",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "check_keepalive_req": {
                          "description": "Specifies the number of requests sent on a connection",
                          "type": "integer"
                        },
                        "check_status_type": {
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "html",
                            "csv",
                            "json"
                          ]
                        },
                        "ssl_options": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "ssl_use": {
                              "description": "Enables SSL. Default is 'off'.",
                              "type": "boolean"
                            },
                            "sspi": {
                              "description": "Enables GOST TLS mode. Default id false.",
                              "type": "boolean"
                            },
                            "ssl_verify_local_crl_only": {
                              "description": "GOST mode. Specifies whether to check the certificate status locally (otherwise check online). Default is \"off\" (online check).",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "ssl_verify_ignore_cn": {
                              "description": "GOST mode. Specifies whether to skip CN check. Default is \"off\" (do not skip).",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "ssl_session_reuse": {
                              "description": "Determines whether SSL sessions can be reused when working with the proxied server. Default is 'on'.",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "ssl_protocols": {
                              "description": "Enables the specified protocols for requests to a proxied HTTPS server. The default value is \"TLSv1 TLSv1.1 TLSv1.2\"",
                              "type": "array",
                              "uniqueItems": true,
                              "items": {
                                "type": "string",
                                "enum": [
                                  "SSLv2",
                                  "SSLv3",
                                  "TLSv1",
                                  "TLSv1.1",
                                  "TLSv1.2",
                                  "TLSv1.3"
                                ]
                              }
                            },
                            "ssl_ciphers": {
                              "description": "Specifies the enabled ciphers for requests to a proxied HTTPS server. The default value is \"HIGH:!aNULL:!MD5\".",
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "prefix": {
                                    "type": "string",
                                    "enum": [
                                      "!",
                                      "+",
                                      "-"
                                    ]
                                  },
                                  "value": {
                                    "type": "array",
                                    "uniqueItems": true,
                                    "items": {
                                      "type": "string",
                                      "enum": [
                                        "DEFAULT",
                                        "COMPLEMENTOFDEFAULT",
                                        "ALL",
                                        "COMPLEMENTOFALL",
                                        "HIGH",
                                        "MEDIUM",
                                        "LOW",
                                        "EXP",
                                        "EXPORT",
                                        "EXPORT40",
                                        "EXPORT56",
                                        "eNULL",
                                        "NULL",
                                        "aNULL",
                                        "kRSA",
                                        "RSA",
                                        "kDHr",
                                        "kDHd",
                                        "kDH",
                                        "kDHE",
                                        "kEDH",
                                        "DHE",
                                        "EDH",
                                        "ADH",
                                        "DH",
                                        "kECDHr",
                                        "kECDHe",
                                        "kECDH",
                                        "kECDHE",
                                        "kEECDH",
                                        "ECDHE",
                                        "EECDH",
                                        "AECDH",
                                        "ECDH",
                                        "aRSA",
                                        "aDSS",
                                        "DSS",
                                        "aDH",
                                        "aECDH",
                                        "aECDSA",
                                        "ECDSA",
                                        "kFZA",
                                        "aFZA",
                                        "eFZA",
                                        "FZA",
                                        "TLSv1.2",
                                        "TLSv1",
                                        "SSLv3",
                                        "SSLv2",
                                        "AES128",
                                        "AES256",
                                        "AES",
                                        "AESGCM",
                                        "CAMELLIA128",
                                        "CAMELLIA256",
                                        "CAMELLIA",
                                        "3DES",
                                        "DES",
                                        "RC4",
                                        "RC2",
                                        "IDEA",
                                        "SEED",
                                        "MD5",
                                        "SHA1",
                                        "SHA",
                                        "SHA256",
                                        "SHA384",
                                        "aGOST",
                                        "aGOST01",
                                        "aGOST94",
                                        "kGOST",
                                        "GOST94",
                                        "GOST89MAC",
                                        "PSK",
                                        "SUITEB128",
                                        "SUITEB128ONLY",
                                        "SUITEB192",
                                        "@STRENGTH",
                                        "NULL-SHA256"
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "value"
                                ]
                              }
                            },
                            "ssl_ciphers_str": {
                              "description": "Specifies the string of enabled ciphers for requests to a proxied HTTPS server.",
                              "type": "string"
                            },
                            "ssl_name": {
                              "description": "Allows overriding the server name used to verify the certificate of the proxied HTTPS server and to be passed through SNI when establishing a connection with the proxied HTTPS server. There is no default value.",
                              "type": "string"
                            },
                            "ssl_name_upstream_host": {
                              "description": "Enables using upstream host to verify the certificate of the proxied HTTPS server when ssl_name isn't specified. Default \"on\".",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "ssl_name_verify_off": {
                              "description": "Enable or disable ssl_name verifying",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "ssl_server_name": {
                              "description": "Enables or disables passing of the server name through TLS Server Name Indication extension (SNI, RFC 6066) when establishing a connection with the proxied HTTPS server. Default is \"off\".",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "ssl_verify": {
                              "description": "Enables or disables verification of the proxied HTTPS server certificate. Default is \"off\"",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "ssl_verify_depth": {
                              "description": "Sets the verification depth in the proxied HTTPS server certificates chain. Default is \"1\".",
                              "type": "integer",
                              "minimum": 0
                            },
                            "ssl_trusted_certificate": {
                              "description": "Specifies a file with trusted CA certificates in the PEM format used to verify the certificate of the proxied HTTPS server. There is no default value.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "ssl_dn_verify_trusted_path": {
                              "description": "Specifies the file with allowed regex of client certificate dn",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "ssl_fingerprint_verify_trusted_path": {
                              "description": "Specifies the file with allowed regex of client certificate dn",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "ssl_verify_error_code": {
                              "description": "Defines the response code if verification upstream certificate failed.",
                              "type": "integer"
                            },
                            "ssl_crl": {
                              "description": "Specifies a file with revoked certificates (CRL) in the PEM format used to verify the certificate of the proxied HTTPS server. There is no default value.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "ssl_certificate": {
                              "description": "Specifies a file with the certificate in the PEM format used for authentication to a proxied HTTPS server. There is no default value.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "ssl_certificate_key": {
                              "description": "Specifies a file with the secret key in the PEM format used for authentication to a proxied HTTPS server. There is no default value.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "ssl_password_file": {
                              "description": "Specifies a file with passphrases for secret keys where each passphrase is specified on a separate line. There is no default value.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            }
                          },
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_session_reuse"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_protocols"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_server_name"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_verify"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_verify_depth"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_dn_verify_trusted_path"
                                ],
                                "properties": {
                                  "ssl_dn_verify_trusted_path": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_verify_error_code"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_fingerprint_verify_trusted_path"
                                ],
                                "properties": {
                                  "ssl_fingerprint_verify_trusted_path": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_verify_error_code"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_crl"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_certificate"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_certificate_key"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ssl_use"
                                ],
                                "properties": {
                                  "ssl_use": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ssl_password_file"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      },
                      "required": [
                        "enabled"
                      ]
                    },
                    "load_balancing": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "type": {
                          "description": "Specifies a load balancing type",
                          "type": "string",
                          "enum": [
                            "hash",
                            "ip_hash",
                            "sticky",
                            "persistence",
                            "least_conn",
                            "random"
                          ]
                        },
                        "random_two": {
                          "description": "Selects only two servers by their weights before using least connections balancing.",
                          "type": "boolean"
                        },
                        "hash_consistent": {
                          "description": "If the consistent parameter is specified the ketama consistent hashing method will be used instead",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "hash_key": {
                          "description": "The client-server mapping is based on the hashed key value",
                          "type": "string"
                        },
                        "name": {
                          "description": "The name of the cookies used to track the persistant upstream srv. The default value is route",
                          "type": "string"
                        },
                        "domain": {
                          "description": "The domain in which the cookie will be valid. By default browser handle this.",
                          "type": "string"
                        },
                        "path": {
                          "description": "The path in which the cookie will be valid. By default browser handle this.",
                          "type": "string"
                        },
                        "expires": {
                          "description": "The validity duration of the cookie. By default it's a session cookie",
                          "type": "string",
                          "pattern": "^([0-9]+[smhdwMy]{1})$"
                        },
                        "hash": {
                          "description": "The hash mechanism to encode upstream server. It can't be used with hmac. Default value is md5",
                          "type": "string",
                          "enum": [
                            "md5",
                            "sha1",
                            "index"
                          ]
                        },
                        "hmac": {
                          "description": "the HMAC hash mechanism to encode upstream server. It's like the hash mechanism but it uses hmac_key to secure the hashing. It can't be used with hash.",
                          "type": "string",
                          "enum": [
                            "md5",
                            "sha1"
                          ]
                        },
                        "hmac_key": {
                          "description": "the key to use with hmac. It's mandatory when hmac is set",
                          "type": "string"
                        },
                        "no_fallback": {
                          "description": "when this flag is set, nginx will return a 502 (Bad Gateway or Proxy Error) if a request comes with a cookie and the corresponding backend is unavailable",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "secure": {
                          "description": "Enable secure cookies. Transferred only via https. The default value is false",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "httponly": {
                          "description": "Enable cookies not to be leaked via js. The default value is false",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "persistence_type": {
                          "description": "Specifies persistence type.",
                          "type": "string",
                          "enum": [
                            "insert_cookie",
                            "session_based"
                          ]
                        },
                        "monitor_cookie": {
                          "type": "string"
                        },
                        "always_use_sticky": {
                          "type": "boolean"
                        },
                        "timeout": {
                          "description": "Specifies cookie expire time.",
                          "type": "integer"
                        },
                        "reset_uri": {
                          "description": "Requesting this uri will result in resetting session cookie.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^\\/.*$"
                        },
                        "reset_uri_pattern": {
                          "description": "Requesting uri which corresponds this regex pattern will result in resetting session cookie.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "reset_cookie": {
                          "description": "If active and monitor_cookie is not in request, session cookie will be reset. Default is \"False\".",
                          "type": "boolean"
                        },
                        "max_age": {
                          "description": "Sets Max-Age flag for sticky session cookie. Number of seconds until the cookie expires. A zero or negative number will expire the cookie immediately.",
                          "type": "integer"
                        },
                        "tail": {
                          "description": "Specifies cookie tail. Search value for specified key within response headers by default. Possible to specify variables also.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "tail_delimiter": {
                          "description": "Specifies cookie tail delimiter. Allowed only one character.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^.{1}$"
                        }
                      },
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "tail"
                            ],
                            "properties": {
                              "tail": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "then": {
                            "required": [
                              "tail_delimiter"
                            ]
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "tail"
                            ],
                            "properties": {
                              "tail": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "tail_delimiter"
                              ]
                            }
                          }
                        }
                      ]
                    },
                    "servers": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "service_id": {
                            "description": "specifies service id",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "service_type": {
                            "description": "specifies service type",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "server": {
                            "description": "specifies server name or IP address with port. The default port is 80.",
                            "type": "string"
                          },
                          "weight": {
                            "description": "specifies weight of the server. The default value is \"1\".",
                            "type": "integer"
                          },
                          "max_conns": {
                            "description": "specifies the maximum number of the concurrent connections to the upstream. The default value is \"0\" that means there are no limits.",
                            "type": "integer"
                          },
                          "max_fails": {
                            "description": "specifies the maximum number of failures during the \"fail_timeout\" after which this server will be marked as unreachable. The default value is \"1\".",
                            "type": "integer"
                          },
                          "fail_timeout": {
                            "description": "specifies the time during which failures should occur after which this server will be marked as unreachable. The default value is \"10s\".",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                          },
                          "backup": {
                            "description": "marks this server as a backup. If all basic servers are unavailable all request will be redirected to this one.",
                            "type": "boolean"
                          },
                          "slow_start": {
                            "description": "Sets the time during which the server will recover its weight from zero to a nominal value, when unhealthy server becomes healthy. Applicable when more than one peer is specified.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^[0-9]+[smhdwMy]{1}$"
                          },
                          "hash": {
                            "description": "Specifies a hash that will be associated with node during sticky balancing choice",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "enable_dp_hash": {
                            "description": "Enables generating hash from \"IP:port\" by internal DP algorithm",
                            "type": "boolean"
                          }
                        },
                        "allOf": [
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "server"
                              ],
                              "properties": {
                                "server": {}
                              }
                            },
                            "else": {
                              "required": [
                                "service_id"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "service_id"
                              ],
                              "properties": {
                                "service_id": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "service_type"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "service_id"
                              ],
                              "properties": {
                                "service_id": {}
                              }
                            },
                            "else": {
                              "required": [
                                "server"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "server"
                              ],
                              "properties": {
                                "server": {}
                              }
                            },
                            "then": {
                              "not": {
                                "required": [
                                  "service_id"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "service_id"
                              ],
                              "properties": {
                                "service_id": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "service_type"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "service_id"
                              ],
                              "properties": {
                                "service_id": {}
                              }
                            },
                            "then": {
                              "not": {
                                "required": [
                                  "server"
                                ]
                              }
                            }
                          }
                        ]
                      }
                    }
                  },
                  "required": [
                    "id",
                    "servers"
                  ],
                  "allOf": [
                    {
                      "if": {
                        "type": "object",
                        "required": [
                          "bind_condition"
                        ],
                        "properties": {
                          "bind_condition": {
                            "pattern": ".+"
                          }
                        }
                      },
                      "else": {
                        "not": {
                          "required": [
                            "default"
                          ]
                        }
                      }
                    }
                  ]
                }
              },
              "optional": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "log_level": {
                    "type": [
                      "number",
                      "string"
                    ],
                    "enum": [
                      "debug",
                      "info",
                      "notice",
                      "warn",
                      "error",
                      "crit",
                      "alert",
                      "off"
                    ]
                  },
                  "client_header_timeout": {
                    "description": "Sets the timeout for reading headers from the client. The default value is \"60s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "client_body_timeout": {
                    "description": "Sets the timeout for reading body from the client. The default value is \"60s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "keepalive_timeout": {
                    "description": "Defines a timeout duaring which a connection will stay open. The default value is \"75s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "keepalive_time": {
                    "description": "Limits the maximum time during which requests can be processed through one keep-alive connection. After this time is reached, the connection is closed following the subsequent request processing. By default -  timeout 1h",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "keepalive_requests": {
                    "description": "Sets the maximum number of the request duaring keep-alive timeiut. The default value is \"10000\".",
                    "type": "integer"
                  },
                  "send_timeout_to_client": {
                    "description": "Sets the timeout for sending answer to the client. The default value is \"60s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "session": {
                    "description": "Enables http session support. The default value is \"off\".",
                    "type": "boolean"
                  },
                  "session_timeout": {
                    "description": "Value in seconds. Default value is 60.",
                    "type": "integer"
                  },
                  "session_cookie_name": {
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "session_redirect_timeout": {
                    "description": "Value in seconds. Must not be larger than session timeout. Default value is 5.",
                    "type": "integer"
                  },
                  "session_show": {
                    "type": "boolean"
                  },
                  "file_upload_limit": {
                    "description": "Enables file upload limitation by content type header. By default limitation is enabled.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "pipelined_requests": {
                    "description": "Enables/disable pipelined requests, by default - on",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "upload_size_limit": {
                    "description": "Specifies maximum size of the request body. Parameter \"drop\" specifies whether drop connection or not.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "drop": {
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "enable": {
                        "description": "Enables limit request body. Default \"true\"",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "size"
                    ]
                  },
                  "download_size_limit": {
                    "description": "Specifies maximum size of the response body. The connection will be dropped when size will be exceeded.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "drop": {
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "status": {
                        "description": "Specifies the status code when response size was exceeded. By default is 413.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(4|5)[0-9]{2}$"
                      }
                    },
                    "required": [
                      "size"
                    ]
                  },
                  "http_version": {
                    "description": "Specifies HTTP version of the upstream service. The default value is \"1.1\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "enum": [
                      1.0,
                      1.1
                    ]
                  },
                  "cookie_domain": {
                    "description": "Whether rewrite the \"domain\" cookie in the answer from the upstream. The default value is \"off\".",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "from": {
                        "type": "string"
                      },
                      "to": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "from",
                      "to"
                    ]
                  },
                  "http2_only": {
                    "description": "Allow to pass only http2 protocol connection. Default - off",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "proxy_connect_timeout": {
                    "description": "Specifies the connect timeout with the upstream service. The default vaue is \"60s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "proxy_read_timeout": {
                    "description": "Specifies read timeout from the upstream. The default vaue is \"60s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "proxy_send_timeout": {
                    "description": "Specifies send timeout from the upstream. The default vaue is \"60s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "proxy_headers_hash_bucket_size": {
                    "description": "Bucket size for hashtables,  using in proxy_set_headers and proxy_hide_headers directive. The default value is 64",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^[0-9]+$"
                  },
                  "proxy_headers_hash_max_size": {
                    "description": "Maximum size of hashtables, using in proxy_set_headers and proxy_hide_headers directive. The default value is 512",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^[0-9]+$"
                  },
                  "proxy_ssl_protocols": {
                    "description": "Specifies SSL protocols. Default values are \"TLSv1 TLSv1.1 TLSv1.2 TLSv1.3\"",
                    "type": "array",
                    "uniqueItems": true,
                    "items": {
                      "type": "string",
                      "enum": [
                        "SSLv2",
                        "SSLv3",
                        "TLSv1",
                        "TLSv1.1",
                        "TLSv1.2",
                        "TLSv1.3"
                      ]
                    }
                  },
                  "set_variable": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "value": {
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "required": [
                        "name",
                        "value"
                      ]
                    }
                  },
                  "opentelemetry": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "tracing": {
                        "description": "Defines parameters of Opentelemetry Tracing",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "mode": {
                            "description": "Enable or disable tracing at this level",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "enabled": {
                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "on",
                                  "off",
                                  "var_based"
                                ]
                              },
                              "var": {
                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            },
                            "allOf": [
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "enabled"
                                  ],
                                  "properties": {
                                    "enabled": {
                                      "const": "var_based"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "var"
                                  ]
                                }
                              }
                            ]
                          },
                          "trace_context": {
                            "description": "Specifies how to propagate traceparent/tracestate headers.   Default - ignore",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "extract",
                              "inject",
                              "propagate",
                              "ignore"
                            ]
                          },
                          "span_name": {
                            "description": "Defines the name of span. By default - name of location, can be contain variables",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "span_attr": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "description": "name of attribute",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "value": {
                                  "description": "value of attribute, can contain variables",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            ""
                          ],
                          "properties": {
                            "": {
                              "properties": {
                                "system": {
                                  "type": "object",
                                  "required": [
                                    "system"
                                  ],
                                  "properties": {
                                    "system": {},
                                    "optional": {
                                      "type": "object",
                                      "required": [
                                        "opentelemetry"
                                      ],
                                      "properties": {
                                        "opentelemetry": {
                                          "pattern": ".+"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "tracing"
                            ]
                          }
                        }
                      }
                    ]
                  },
                  "event_hook": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Allows to enable/disable EVH for service. Default value is \"True\".",
                        "type": "boolean"
                      },
                      "stage": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "name": {
                              "description": "Specifies the stage for log.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "client_request",
                                "client_response",
                                "upstream_request",
                                "upstream_response"
                              ]
                            },
                            "log_file": {
                              "description": "Specifies the log file name. Default is /sowalogs/<profile name>/services/service_http_proxy/service_http_proxy_<id>/<stage>/$request_id.log",
                              "type": "string"
                            },
                            "pattern_file": {
                              "description": "Specifies the pattern file.",
                              "type": "string"
                            },
                            "max_size": {
                              "description": "Specifies the threshold after exceeding which the event will bw written to temp file in directory specified by \"temp_path\". Default is not specified.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                            }
                          },
                          "required": [
                            "name"
                          ]
                        }
                      },
                      "logger_service": {
                        "description": "Specifies service type to handle event.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "logger_service_type": {
                        "description": "Specifies when loging making synchronous or asynchronous",
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "sync",
                          "async"
                        ]
                      },
                      "logger_id": {
                        "description": "Specifies service id to handle event.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "logger_read_timeout": {
                        "description": "Specifies logger read timeout. Default 1s",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                      },
                      "logger_send_timeout": {
                        "description": "Specifies logger send timeout. Default 1s",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                      },
                      "logger_connect_timeout": {
                        "description": "Specifies logger connect timeout. Default 1s",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                      },
                      "logger_client_body_timeout": {
                        "description": "Specifies logger client body timeout. Default 1s",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                      },
                      "logger_buffer_size": {
                        "description": "Specifies logger buffer size for writing to service timeout. Default 16k;",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "logger_max_memory": {
                        "description": "Specifies async logger max in-memory size for event. Default 2M, if limit exceeded event dumped to temp file;",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "log_in_file": {
                        "description": "Specifies log in to the file or not.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "temp_path": {
                        "description": "Specifies the path for saving temp data. Default is /sowarun/<profile name>/service_http_proxy/service_http_proxy_<id>",
                        "type": "string"
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "enabled"
                          ],
                          "properties": {
                            "enabled": {
                              "const": false
                            }
                          }
                        },
                        "then": {
                          "required": []
                        },
                        "else": {
                          "required": [
                            "stage"
                          ]
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "logger_service"
                          ],
                          "properties": {
                            "logger_service": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "logger_read_timeout"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "logger_service"
                          ],
                          "properties": {
                            "logger_service": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "logger_send_timeout"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "logger_service"
                          ],
                          "properties": {
                            "logger_service": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "logger_connect_timeout"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "logger_service"
                          ],
                          "properties": {
                            "logger_service": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "logger_client_body_timeout"
                            ]
                          }
                        }
                      }
                    ]
                  },
                  "security_headers": {
                    "description": "Specifies security response headers.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "referrer_policy": {
                        "description": "Specifies which referrer information, sent in the Referer header, should be included with requests made.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "no-referrer",
                          "no-referrer-when-downgrade",
                          "origin",
                          "origin-when-cross-origin",
                          "same-origin",
                          "strict-origin",
                          "strict-origin-when-cross-origin",
                          "unsafe-url"
                        ]
                      },
                      "x_frame_options": {
                        "description": "Specifies whether or not a browser should be allowed to render a page in a frame",
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "DENY",
                          "SAMEORIGIN"
                        ]
                      },
                      "xss_protection": {
                        "description": "Use headers for additional xss protection.",
                        "type": "boolean"
                      },
                      "forced_ssl": {
                        "description": "Forces SSL connetion.",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "max_age": {
                            "description": "Specifies time, in seconds, that the browser should remember that a site is only to be accessed using HTTPS.",
                            "type": "integer"
                          }
                        },
                        "required": [
                          "max_age"
                        ]
                      },
                      "content_security": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "block_mixed_content": {
                            "description": "only SSL content allowed.",
                            "type": "boolean"
                          },
                          "connect_src": {
                            "description": "Restricts the URLs which can be loaded using script interfaces.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "font_src": {
                            "description": "Specifies valid sources for fonts loaded using @font-face.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "script_src": {
                            "description": "Specifies valid sources for JavaScript.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "worker_src": {
                            "description": "Specifies valid sources for Worker, SharedWorker, or ServiceWorker scripts.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "style_src": {
                            "description": "Specifies valid sources for stylesheets.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "frame_ancestors": {
                            "description": "Specifies valid parents that may embed a page using <frame>, <iframe>, <object>, <embed>, or <applet>.",
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        }
                      }
                    }
                  },
                  "exclude_req_stat": {
                    "description": "Excludes location request stats monitoring",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "exclude_resp_stat": {
                    "description": "Excludes location resp stats monitoring",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "limit_req": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enable limit req module",
                        "type": "boolean"
                      },
                      "rate": {
                        "description": "The count of requests which will be handled per time interval.",
                        "type": "number"
                      },
                      "rate_interval": {
                        "description": "Time interval for request rate measuring. Specify 's' for second and 'm' for minute. By default is 's'. Hint - if you need '0.5r/s', you can specify '30r/m'.",
                        "type": "string",
                        "enum": [
                          "s",
                          "m"
                        ]
                      },
                      "size": {
                        "description": "Shared memory zone used to store the state of each IP address and how often it has accessed a request limited URL. The default value is \"10m\"",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})$"
                      },
                      "burst": {
                        "description": "Defines how many requests a client can make in excess of the rate. The default value is \"0\"",
                        "type": "integer"
                      },
                      "cpu_limit": {
                        "description": "Defines maximum CPU load percentage. After exceeding limit, all incoming connections will be declined.",
                        "type": "integer"
                      },
                      "mem_limit": {
                        "description": "Defines maximum memory load percentage. After exceeding limit, all incoming connections will be declined.",
                        "type": "integer"
                      },
                      "target": {
                        "description": "Specifies a target for check. You can use predefined values 'src_ip' and 'service' or any nginx variables using prefix '$' (e.g. $server_port).",
                        "type": "string",
                        "pattern": "^((src_ip)|(service)|(request_method)|(\\$[a-z_]+))$"
                      },
                      "policy_type": {
                        "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                        "type": "string",
                        "enum": [
                          "allow",
                          "forbid"
                        ]
                      },
                      "exclude_ip": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "nodelay": {
                        "description": "default false",
                        "type": "boolean"
                      },
                      "forbid_action": {
                        "description": "Specifies location on which will be redirected",
                        "type": "string"
                      },
                      "status_code": {
                        "description": "Defines the response code if the limit is exceeded. Default value is \"413\".",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "dry_run": {
                        "description": "Enables dry run mode. Default is off.",
                        "type": "boolean"
                      },
                      "condition": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "condition_var": {
                            "type": "string",
                            "pattern": "^\\$.+$"
                          },
                          "condition_value": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ifall",
                              "ifany",
                              "if"
                            ]
                          },
                          "expression": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "variable": {
                                  "type": "string",
                                  "pattern": "^\\$.+$"
                                },
                                "operation": {
                                  "type": "string",
                                  "enum": [
                                    ">=",
                                    "=",
                                    ">",
                                    "<",
                                    "<=",
                                    "!=",
                                    "~",
                                    "~*",
                                    "!~",
                                    "!~*",
                                    "-f",
                                    "!-f",
                                    "-d",
                                    "!-d",
                                    "-e",
                                    "!-e",
                                    "-x",
                                    "!-x"
                                  ]
                                },
                                "value": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "variable"
                              ]
                            }
                          }
                        },
                        "required": [
                          "condition_var",
                          "condition_value",
                          "type"
                        ]
                      }
                    },
                    "required": [
                      "enabled",
                      "target"
                    ]
                  },
                  "limit_requests": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enable limit req module",
                        "type": "boolean"
                      },
                      "status_code": {
                        "description": "Defines the response code if the limit is exceeded. Default value is \"413\".",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "dry_run": {
                        "description": "Enables dry run mode. Default is off.",
                        "type": "boolean"
                      },
                      "limit_req": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "rate": {
                              "description": "The count of requests which will be handled per time interval.",
                              "type": "number"
                            },
                            "rate_interval": {
                              "description": "Time interval for request rate measuring. Specify 's' for second and 'm' for minute. By default is 's'. Hint - if you need '0.5r/s', you can specify '30r/m'.",
                              "type": "string",
                              "enum": [
                                "s",
                                "m"
                              ]
                            },
                            "size": {
                              "description": "Shared memory zone used to store the state of each IP address and how often it has accessed a request limited URL. The default value is \"10m\"",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^([0-9]+[kKmM]{1})$"
                            },
                            "burst": {
                              "description": "Defines how many requests a client can make in excess of the rate. The default value is \"0\"",
                              "type": "integer"
                            },
                            "cpu_limit": {
                              "description": "Defines maximum CPU load percentage. After exceeding limit, all incoming connections will be declined.",
                              "type": "integer"
                            },
                            "mem_limit": {
                              "description": "Defines maximum memory load percentage. After exceeding limit, all incoming connections will be declined.",
                              "type": "integer"
                            },
                            "target": {
                              "description": "Specifies a target for check. You can use predefined values 'src_ip' and 'service' or any nginx variables using prefix '$' (e.g. $server_port).",
                              "type": "string",
                              "pattern": "^((src_ip)|(service)|(request_method)|(\\$[a-z_]+))$"
                            },
                            "policy_type": {
                              "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                              "type": "string",
                              "enum": [
                                "allow",
                                "forbid"
                              ]
                            },
                            "exclude_ip": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                              }
                            },
                            "nodelay": {
                              "description": "default false",
                              "type": "boolean"
                            },
                            "forbid_action": {
                              "description": "Specifies location on which will be redirected",
                              "type": "string"
                            },
                            "condition": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "condition_var": {
                                  "type": "string",
                                  "pattern": "^\\$.+$"
                                },
                                "condition_value": {
                                  "type": "string"
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "ifall",
                                    "ifany",
                                    "if"
                                  ]
                                },
                                "expression": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "variable": {
                                        "type": "string",
                                        "pattern": "^\\$.+$"
                                      },
                                      "operation": {
                                        "type": "string",
                                        "enum": [
                                          ">=",
                                          "=",
                                          ">",
                                          "<",
                                          "<=",
                                          "!=",
                                          "~",
                                          "~*",
                                          "!~",
                                          "!~*",
                                          "-f",
                                          "!-f",
                                          "-d",
                                          "!-d",
                                          "-e",
                                          "!-e",
                                          "-x",
                                          "!-x"
                                        ]
                                      },
                                      "value": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "variable"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "condition_var",
                                "condition_value",
                                "type"
                              ]
                            }
                          },
                          "required": [
                            "target"
                          ]
                        }
                      }
                    },
                    "required": [
                      "enabled",
                      "limit_req"
                    ]
                  },
                  "robot_mitigation": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enables defense against HTTP robot attacks.",
                        "type": "boolean"
                      },
                      "blacklist": {
                        "description": "Means if a client has failed for N times, this client will be added into blacklist. Default 5",
                        "type": "integer"
                      },
                      "mode": {
                        "description": "Robot Mitigation will return a user-defined js code or predefined flash file to the client. Default js",
                        "type": "string",
                        "enum": [
                          "js",
                          "swf"
                        ]
                      },
                      "timeout": {
                        "description": "Sets the time for the next challenge to be initiated, in seconds. Default 60",
                        "type": "integer"
                      },
                      "ajax": {
                        "description": "This directive sets if challenge for ajax requests based on XMLRequest header. Default off",
                        "type": "boolean"
                      },
                      "policy_type": {
                        "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                        "type": "string",
                        "enum": [
                          "allow",
                          "forbid"
                        ]
                      },
                      "exclude_ip": {
                        "description": "Specifies the IP addresses, which will be excluded from whitelist",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "ua_whitelist": {
                        "description": "This directives specifies the User-Agent whitelist.",
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "ip_behavior": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "sample_base": {
                        "description": "Specifies the number of the request for a valid sample",
                        "type": "number"
                      },
                      "size": {
                        "description": "Size means how much memory will use by zone. The default value is \"10m\"",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})$"
                      },
                      "sample_cycle": {
                        "description": "Specifies the cyclog of the sampling, unit could be s (for second) and m (for minute).",
                        "type": "string",
                        "pattern": "^([0-9]+[mMsS]{1})$"
                      },
                      "sensitive": {
                        "description": "Specifies sensitive locations. If a location is defined as a sensitive location, all the resources under this location will be treated as sensitive. Default false",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "sample_base",
                      "size",
                      "sample_cycle"
                    ]
                  },
                  "cookie_poisoning": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enables monitoring the Set-Cookies headers and the cookie values in the response from server side.",
                        "type": "boolean"
                      },
                      "action": {
                        "description": "This directive specifies the action when cookie values are detected changed.  Default block",
                        "type": "string",
                        "pattern": "^block|pass|remove|blacklist,[0-9]+$"
                      },
                      "log": {
                        "type": "boolean"
                      },
                      "policy_type": {
                        "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                        "type": "string",
                        "enum": [
                          "allow",
                          "forbid"
                        ]
                      },
                      "exclude_ip": {
                        "description": "Specifies the IP addresses, which will be excluded from whitelist",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "include_ip": {
                        "description": "Specifies the IP addresses, which will be included to whitelist",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "ua_whitelist": {
                        "description": "This directives specifies the User-Agent whitelist.",
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "gzip": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enables response compression by gzip method.",
                        "type": "boolean"
                      },
                      "optional": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "level": {
                            "description": "Sets the compression level. The default value is \"5\".",
                            "type": "integer",
                            "enum": [
                              1,
                              2,
                              3,
                              4,
                              5,
                              6,
                              7,
                              8,
                              9
                            ]
                          },
                          "types": {
                            "description": "Sets the mime-types for which compression is applied. The default value is \"text/html\".",
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "buffer_count": {
                            "description": "Sets the count of buffers in wich the response will be placed. The default value is \"32\".",
                            "type": "integer"
                          },
                          "buffer_size": {
                            "description": "Sets the buffer size in wich the response will be placed. The default value is memory page size.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "exclude": {
                            "description": "Sets the list of the User-Agent specified by regular expressions for which compression will be disabled.",
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "min_length": {
                            "description": "Sets the minimum length of the response for which compression will be applied. The default value is \"20\".",
                            "type": "integer"
                          },
                          "http_version": {
                            "description": "Specifies the minimum version for the request necessary for the response compression. The default value is \"1.0\"",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              1.0,
                              1.1
                            ]
                          },
                          "proxied": {
                            "description": "Enables or disables gzipping of responses for proxied requests depending on the request and response.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              false,
                              "expired",
                              "no-cache",
                              "no-store",
                              "private",
                              "no_last_modified",
                              "no_etag",
                              "auth",
                              "any"
                            ]
                          },
                          "vary": {
                            "description": "Enables or disables inserting the 'Vary: Accept-Encoding' response header field if the directives gzip, gzip_static, or gunzip are active.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              true,
                              false
                            ]
                          },
                          "static": {
                            "description": "Enables or disables checking the existence of precompressed files. With the \"always\" value, gzipped file is used in all cases, without checking if the client supports it. Default - off",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              true,
                              false,
                              "always"
                            ]
                          }
                        }
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "limit_conn": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enable limit conn module",
                        "type": "boolean"
                      },
                      "count": {
                        "description": "The count of connections which will be handled.",
                        "type": "number"
                      },
                      "size": {
                        "description": "Shared memory zone used to store the state of each target and how often it has create connection. The default value is \"10m\"",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})$"
                      },
                      "target": {
                        "description": "Specifies a target for check.",
                        "type": "string"
                      },
                      "status_code": {
                        "description": "Defines the response code if the limit is exceeded. Default value is \"503\".",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "dry_run": {
                        "description": "Enables dry run mode. Default is off.",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "enabled",
                      "count",
                      "target"
                    ]
                  },
                  "client_body_buffer_size": {
                    "description": "Sets buffer size for reading client request body. Default By default, buffer size is equal to two memory pages. For x86 it is usually 8K.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "client_body_in_file_only": {
                    "description": "Determines whether nginx should save the entire client request body into a file. By default is off.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off",
                      "clean"
                    ]
                  },
                  "client_body_in_single_buffer": {
                    "description": "Determines whether nginx should save the entire client request body in a single buffer. By default is off.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "client_header_buffer_size": {
                    "description": "Sets buffer size for reading client request header. By default is 1k.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "large_client_header_buffers": {
                    "description": "Sets the maximum number and size of buffers used for reading large client request header. By default the number is 4, the size is 4k.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "number": {
                        "type": "integer"
                      },
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      }
                    },
                    "required": [
                      "number",
                      "size"
                    ]
                  },
                  "output_buffers": {
                    "description": "Sets the number and size of the buffers used for reading a response from a disk. By default the number is 2, the size is 32k.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "number": {
                        "type": "integer"
                      },
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      }
                    },
                    "required": [
                      "number",
                      "size"
                    ]
                  },
                  "subrequest_output_buffer_size": {
                    "description": "Sets the size of the buffer used for storing the response body of a subrequest. By default, the buffer size is equal to one memory page.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_buffer_size": {
                    "description": "Sets the size of the buffer used for reading the first part of the response received from the proxied server. By default, the buffer size is equal to one memory page.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_buffering": {
                    "description": "Enables or disables buffering of responses from the proxied server. By default is on.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "proxy_buffers": {
                    "description": "Sets the number and size of the buffers used for reading a response from the proxied server, for a single connection. By default the number is 8, the size is equal to one memory page.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "number": {
                        "type": "integer"
                      },
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      }
                    },
                    "required": [
                      "number",
                      "size"
                    ]
                  },
                  "proxy_busy_buffers_size": {
                    "description": "When buffering of responses from the proxied server is enabled, limits the total size of buffers that can be busy sending a response to the client while the response is not yet fully read. By default, size is limited by the size of two buffers set by the proxy_buffer_size and proxy_buffers directives.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_request_buffering": {
                    "description": "Enables or disables buffering of a client request body. By default is on.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "proxy_max_temp_file_size": {
                    "description": "When buffering of responses from the proxied server is enabled, and the whole response does not fit into the buffers set by the proxy_buffer_size and proxy_buffers directives, a part of the response can be saved to a temporary file. This directive sets the maximum size of the temporary file. The size of data written to the temporary file at a time is set by the proxy_temp_file_write_size directive. The zero value disables buffering of responses to temporary files.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_temp_file_write_size": {
                    "description": "Limits the size of data written to a temporary file at a time, when buffering of responses from the proxied server to temporary files is enabled. By default, size is limited by two buffers set by the proxy_buffer_size and proxy_buffers directives. The maximum size of a temporary file is set by the proxy_max_temp_file_size directive.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_max_downstream_presend_inmemory_size": {
                    "description": "When used body filters such Modsecurity or Response size body filter, we always read all upstream data before sending client. Setting this parameter adjust maximum data in memory size, if 0 specified limit is not setted",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "async_io": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "directio_threshold": {
                        "description": "Enables the use of the O_DIRECT flag (FreeBSD, Linux), the F_NOCACHE flag (macOS), or the directio() function (Solaris), when reading files that are larger than or equal to the specified size.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "thread_pool_id": {
                        "description": "Defines thread pool to use by id. If the thread_pool_id is omitted, the pool with the name default is used.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "write": {
                        "description": "Specifies whether async_io is used for writing files.",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "directio_threshold"
                    ]
                  },
                  "request_gunzip": {
                    "description": "Gunzip request body if request header 'Content-Encoding: gzip' is present. Default 'off'.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "enum": [
                      true,
                      false
                    ]
                  },
                  "request_gunzip_buffer": {
                    "description": "Specifies buffer size for gunzip operation. Default is memory page size.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "log_masking_rules": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "log_type": {
                          "description": "Which log type will be masked",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "event",
                            "security",
                            "all"
                          ]
                        },
                        "object": {
                          "description": "Specifies in which part of data masking will be maked",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "request_header",
                            "response_header",
                            "request_body",
                            "response_body",
                            "request_cookie",
                            "response_cookie"
                          ]
                        },
                        "cookie": {
                          "description": "Individual cookie name wich will be masked",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "header": {
                          "description": "Header name which will be masked",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "mask_symbol": {
                          "description": "Specifies which symbol will be used on replacement",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "."
                        },
                        "expression": {
                          "description": "Search pattern",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "replace_group": {
                          "description": "Specifies group number in expression which will be used for replacement for request or response body. If 0 - replacing full match string",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^[0-9]*$"
                        },
                        "replace_all": {
                          "description": "Replace all occurences or first. By default only first occurence replacing",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "exclusion": {
                          "description": "Define exlcusion from masking in all object with this type, default false",
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "object"
                      ]
                    }
                  },
                  "http2": {
                    "description": "Define http2 specific parameters",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "body_preread_size": {
                        "description": "Sets the size of the buffer per each request in which the request body may be saved before it is started to be processed. By default - 64k",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "chunk_size": {
                        "description": "Sets the maximum size of chunks into which the response body is sliced. A too low value results in higher overhead. A too high value impairs prioritization due to HOL blocking. By default - 8k",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "max_concurrent_pushes": {
                        "description": "Limits the maximum number of concurrent push requests in a connection. By default - 10",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+)$"
                      },
                      "max_concurrent_streams": {
                        "description": "Sets the maximum number of concurrent HTTP/2 streams in a connection. By default - 128",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+)$"
                      },
                      "push_preload": {
                        "description": "Enables automatic conversion of preload links specified in the “Link” response header fields into push requests. By default - off",
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "pushes": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "push_parent": {
                            "description": "Cancels the effect of the push directives inherited from the previous configuration level. By default off",
                            "type": "string",
                            "enum": [
                              "on",
                              "off"
                            ]
                          },
                          "push_list": {
                            "description": "List of Pre-emptively sends (pushes) a request to the specified uri along with the response to the original request. Only relative URIs with absolute path will be processed",
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    }
                  },
                  "log_type": {
                    "description": "Specifies logging mode for sowa-nginx. Default mode - file.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "kafka": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "group": {
                              "description": "Specifies which group of logs will use current settings.",
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "system",
                                  "error",
                                  "access"
                                ]
                              }
                            },
                            "id": {
                              "description": "Specifies client.id.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "broker": {
                              "description": "Initial list of brokers as a host:port separated by comma.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "topic": {
                              "description": "Specifies topic name.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^\\S*$"
                            },
                            "protocol": {
                              "description": "Specifies connection protocol. Plaintext by default.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "plaintext",
                                "ssl"
                              ]
                            },
                            "certificate": {
                              "description": "Specifies ssl.certificate.location",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "ca": {
                              "description": "Specifies ssl.ca.location.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "key": {
                              "description": "Specifies ssl.key.location.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "ciphers": {
                              "description": "Specifies ssl.cipher.suites. Same as default ssl ciphers.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "compression_codec": {
                              "description": "Compression codec to use for compressing message sets.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "none",
                                "gzip",
                                "snappy",
                                "lz4",
                                "zstd"
                              ]
                            },
                            "compression_level": {
                              "description": "Compression level parameter for algorithm selected by configuration property compression.codec. Higher values will result in better compression at the cost of more CPU usage.",
                              "type": "integer",
                              "minimum": -1,
                              "maximum": 12
                            },
                            "log_level": {
                              "description": "Logging level (syslog(3) levels).",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "debug": {
                              "description": "A comma-separated list of debug contexts to enable.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "max_messages": {
                              "description": "Maximum number of messages batched in one MessageSet.",
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 1000000
                            },
                            "pattern_file": {
                              "description": "Template file with custom log structure.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "escape": {
                              "description": "Defines if you need to escape variables used in pattern file.",
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "broker",
                            "topic"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "certificate"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "ca"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "key"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ciphers"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      },
                      "syslog": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "group": {
                              "description": "Specifies which group of logs will use current settings.",
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "system",
                                  "error",
                                  "access"
                                ]
                              }
                            },
                            "log_host": {
                              "description": "Specifies host for remote logging to syslog.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "log_port": {
                              "description": "Specifies port for remote logging to syslog. Default port - 514.",
                              "type": [
                                "number",
                                "string"
                              ]
                            }
                          }
                        }
                      },
                      "file": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "group": {
                              "description": "Specifies which group of logs will use current settings.",
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "system",
                                  "error",
                                  "access"
                                ]
                              }
                            }
                          }
                        }
                      },
                      "security": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Enables logging security security events (XSD, JSON, WSDL and other validators). False by default.",
                            "type": "boolean"
                          },
                          "threads_count": {
                            "description": "Specifies count of threads for thread pool, used for sending security events to syslog. Default is 16",
                            "type": "integer"
                          },
                          "hostname": {
                            "description": "Specifies hostname to dispaly in syslog event. Default is current hostname.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "appname": {
                            "description": "Specifies application name to dispaly in syslog event. Default is \"sowa-security\".",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "facility": {
                            "description": "Specifies facility for syslog event. Default is USER.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "KERN",
                              "USER",
                              "MAIL",
                              "DAEMON",
                              "AUTH",
                              "SYSLOG",
                              "LPR",
                              "NEWS",
                              "UUCP",
                              "CRON",
                              "AUTHPRIV",
                              "FTP",
                              "NTP",
                              "AUDIT",
                              "ALERT",
                              "CLOCK",
                              "LOCAL0",
                              "LOCAL1",
                              "LOCAL2",
                              "LOCAL3",
                              "LOCAL4",
                              "LOCAL5",
                              "LOCAL6",
                              "LOCAL7"
                            ]
                          },
                          "severity": {
                            "description": "Specifies severity for syslog event. Default is INFORMATIONAL.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "EMERGENCY",
                              "ALERT",
                              "CRITICAL",
                              "ERROR",
                              "WARNING",
                              "NOTICE",
                              "INFORMATIONAL",
                              "DEBUG"
                            ]
                          },
                          "target_host": {
                            "description": "Specifies host to send syslog event. Default is \"127.0.0.1\"",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "target_port": {
                            "description": "Specifies port to send syslog event. Default is 514.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 65535
                          },
                          "protocol": {
                            "description": "Specifies used protocol to send syslog event. Default is UDP.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "UDP",
                              "TCP"
                            ]
                          },
                          "msg_format": {
                            "description": "Specifies message format to send syslog event. Default is RFC_3164",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "RFC_3164",
                              "RFC_5424",
                              "RFC_5425"
                            ]
                          }
                        }
                      }
                    }
                  },
                  "redirect": {
                    "description": "Allows return a temporary redirect with the 302 code or a permanent redirect with the 301 code.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "from": {
                          "description": "Request URI regex",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "to": {
                          "description": "Replacement string",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "type": {
                          "description": "Type of redirect. Defaul \"redirect\".",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "redirect",
                            "permanent",
                            "redirect_temp",
                            "redirect_perm"
                          ]
                        },
                        "condition": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "var": {
                              "description": "Specifies a variable to analyze",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "operator": {
                              "description": "Specifies an operator to apply",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "=",
                                "!=",
                                "~",
                                "~*",
                                "!~",
                                "!~*"
                              ]
                            },
                            "val": {
                              "description": "Specifies a value or regex for the operator",
                              "type": [
                                "number",
                                "string"
                              ]
                            }
                          },
                          "required": [
                            "var",
                            "operator",
                            "val"
                          ]
                        }
                      },
                      "required": [
                        "from",
                        "to"
                      ]
                    }
                  }
                },
                "allOf": [
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "limit_requests"
                      ],
                      "properties": {
                        "limit_requests": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "limit_req"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "limit_req"
                      ],
                      "properties": {
                        "limit_req": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "limit_requests"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_buffering"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_buffers"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_busy_buffers_size"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_request_buffering"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_max_temp_file_size"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_temp_file_write_size"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_max_downstream_presend_inmemory_size"
                        ]
                      }
                    }
                  }
                ]
              },
              "filters": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "filter_mds": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Specifies to enable or disable MDS. Default is \"True\".",
                        "type": "boolean"
                      },
                      "aio": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "When specified true, dedicated thread will be used for request/response processing when its possible, value inherited from parent and may be overrite in child",
                            "type": "boolean"
                          },
                          "thread_pool_id": {
                            "description": "name of thread pool from section system/optional/thread_pools, value inherite from parent and may by override in child. Must be specified when aio is true",
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        }
                      },
                      "ignore_parent": {
                        "description": "Specifies ignore parent rules and settings or not",
                        "type": "boolean"
                      },
                      "debug": {
                        "type": "boolean"
                      },
                      "config": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "SecRuleEngine": {
                            "enum": [
                              true,
                              false,
                              "DetectionOnly"
                            ]
                          },
                          "SecRequestBodyAccess": {
                            "type": "boolean"
                          },
                          "SecRequestBodyLimit": {
                            "type": "integer"
                          },
                          "SecRequestBodyLimitAction": {
                            "type": "string"
                          },
                          "SecPcreMatchLimit": {
                            "type": "integer"
                          },
                          "SecPcreMatchLimitRecursion": {
                            "type": "integer"
                          },
                          "SecResponseBodyAccess": {
                            "type": "boolean"
                          },
                          "SecResponseBodyMimeType": {
                            "type": "string"
                          },
                          "SecResponseBodyLimit": {
                            "type": "integer"
                          },
                          "SecResponseBodyLimitAction": {
                            "type": "string"
                          },
                          "SecStreamOutBodyInspection": {
                            "type": "boolean"
                          },
                          "SecUploadKeepFiles": {
                            "type": "boolean"
                          },
                          "SecAuditEngine": {
                            "type": "string"
                          },
                          "SecAuditLogRelevantStatus": {
                            "type": "string"
                          },
                          "SecAuditLogParts": {
                            "type": "string"
                          },
                          "SecAuditLogType": {
                            "type": "string",
                            "enum": [
                              "Syslog",
                              "Serial",
                              "Concurrent",
                              "Kafka"
                            ]
                          },
                          "SecAuditSyslogHost": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditSyslogPort": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditSyslogProtocol": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "tcp",
                              "udp"
                            ]
                          },
                          "SecAuditSyslogConnectTimeout": {
                            "type": "integer"
                          },
                          "SecArgumentSeparator": {
                            "type": "string"
                          },
                          "SecCookieFormat": {
                            "type": "integer"
                          },
                          "SecUnicodeMapFile": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "file": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "code": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            },
                            "required": [
                              "file",
                              "code"
                            ]
                          },
                          "SecUseTransformCache": {
                            "type": "boolean"
                          },
                          "SecRequestTimeout": {
                            "type": "integer"
                          },
                          "SecPassSlowRequest": {
                            "type": "boolean"
                          },
                          "SecResponseTimeout": {
                            "type": "integer"
                          },
                          "SecPassSlowResponse": {
                            "type": "boolean"
                          },
                          "SecLogFullBodyOnTimeout": {
                            "type": "boolean"
                          },
                          "SecAuditKafkaBrokers": {
                            "description": "CSV list of brokers",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditKafkaTopic": {
                            "description": "topic to connect to",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditKafkaProtocol": {
                            "description": "connection protocol",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "plaintext",
                              "ssl"
                            ]
                          },
                          "SecAuditKafkaCertificate": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditKafkaKey": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "SecAuditKafkaCa": {
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        },
                        "allOf": [
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestBodyLimitAction"
                              ],
                              "properties": {
                                "SecRequestBodyLimitAction": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecRequestBodyLimit"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestBodyLimit"
                              ],
                              "properties": {
                                "SecRequestBodyLimit": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecRequestBodyLimitAction"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseBodyLimitAction"
                              ],
                              "properties": {
                                "SecResponseBodyLimitAction": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecResponseBodyLimit"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseBodyLimit"
                              ],
                              "properties": {
                                "SecResponseBodyLimit": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecResponseBodyLimitAction"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecAuditLogType"
                              ],
                              "properties": {
                                "SecAuditLogType": {
                                  "const": "Kafka"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecAuditKafkaBrokers"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecAuditLogType"
                              ],
                              "properties": {
                                "SecAuditLogType": {
                                  "const": "Kafka"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecAuditKafkaTopic"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecAuditKafkaProtocol"
                              ],
                              "properties": {
                                "SecAuditKafkaProtocol": {
                                  "const": "ssl"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecAuditKafkaCertificate"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecAuditKafkaProtocol"
                              ],
                              "properties": {
                                "SecAuditKafkaProtocol": {
                                  "const": "ssl"
                                }
                              }
                            },
                            "then": {
                              "required": [
                                "SecAuditKafkaKey"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestBodyLimitAction"
                              ],
                              "properties": {
                                "SecRequestBodyLimitAction": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecRequestBodyLimit"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestBodyLimit"
                              ],
                              "properties": {
                                "SecRequestBodyLimit": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecRequestBodyLimitAction"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseBodyLimitAction"
                              ],
                              "properties": {
                                "SecResponseBodyLimitAction": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecResponseBodyLimit"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseBodyLimit"
                              ],
                              "properties": {
                                "SecResponseBodyLimit": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecResponseBodyLimitAction"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestTimeout"
                              ],
                              "properties": {
                                "SecRequestTimeout": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecPassSlowRequest"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseTimeout"
                              ],
                              "properties": {
                                "SecResponseTimeout": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecPassSlowResponse"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecResponseTimeout"
                              ],
                              "properties": {
                                "SecResponseTimeout": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecLogFullBodyOnTimeout"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecRequestTimeout"
                              ],
                              "properties": {
                                "SecRequestTimeout": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecLogFullBodyOnTimeout"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "SecAuditKafkaProtocol"
                              ],
                              "properties": {
                                "SecAuditKafkaProtocol": {
                                  "const": "ssl"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "SecAuditKafkaCa"
                                ]
                              }
                            }
                          }
                        ]
                      },
                      "rules": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "base",
                            "owasp-crs",
                            "comodo",
                            "sowa-mq",
                            "sowa-http",
                            "sowa-ws",
                            "sowa-ufs",
                            "sowa-kafka",
                            "sowa-http-reversed"
                          ]
                        }
                      },
                      "custom_rules": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              },
              "validators": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "validator_json": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "request": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "default": {
                              "description": "Specify the default rule",
                              "type": "boolean"
                            },
                            "url": {
                              "type": "string"
                            },
                            "method": {
                              "type": "string",
                              "enum": [
                                "post",
                                "put",
                                "delete",
                                "patch"
                              ]
                            },
                            "params": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "name": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "operator": {
                                    "type": "string",
                                    "enum": [
                                      "=",
                                      "!=",
                                      "~",
                                      "~*",
                                      "!~",
                                      "!~*"
                                    ]
                                  },
                                  "pattern": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  }
                                },
                                "required": [
                                  "name",
                                  "operator",
                                  "pattern"
                                ]
                              }
                            },
                            "allow_empty_body": {
                              "description": "Specifies allow empty bodies or not.",
                              "type": "boolean"
                            },
                            "allow_primitives_in_root": {
                              "description": "Specifies allow primitives(integer/string/boolean/null) in root of json or allowed only JSONObject/JSONArray in root. Default - false",
                              "type": "boolean"
                            },
                            "transforms": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "PostFormDataToFlateJson"
                                ]
                              }
                            },
                            "schema": {
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            }
                          },
                          "required": [
                            "schema"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "url"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "method"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "params"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "allow_empty_body"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "allow_primitives_in_root"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      },
                      "response": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "default": {
                              "description": "Specify the default rule",
                              "type": "boolean"
                            },
                            "url": {
                              "type": "string"
                            },
                            "method": {
                              "type": "string",
                              "enum": [
                                "get",
                                "post",
                                "put",
                                "delete",
                                "patch"
                              ]
                            },
                            "params": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "name": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "operator": {
                                    "type": "string",
                                    "enum": [
                                      "=",
                                      "!=",
                                      "~",
                                      "~*",
                                      "!~",
                                      "!~*"
                                    ]
                                  },
                                  "pattern": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  }
                                },
                                "required": [
                                  "name",
                                  "operator",
                                  "pattern"
                                ]
                              }
                            },
                            "allow_empty_body": {
                              "description": "Specifies allow empty bodies or not.",
                              "type": "boolean"
                            },
                            "allow_primitives_in_root": {
                              "description": "Specifies allow primitives(integer/string/boolean/null) in root of json or allowed only JSONObject/JSONArray in root. Default - false",
                              "type": "boolean"
                            },
                            "transforms": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "PostFormDataToFlateJson"
                                ]
                              }
                            },
                            "schema": {
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "response_code": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "operator": {
                                  "type": "string",
                                  "enum": [
                                    "=",
                                    "!=",
                                    "~",
                                    "~*",
                                    "!~",
                                    "!~*"
                                  ]
                                },
                                "pattern": {
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                }
                              },
                              "required": [
                                "operator",
                                "pattern"
                              ]
                            }
                          },
                          "required": [
                            "schema"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "url"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "method"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "params"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "allow_empty_body"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "allow_primitives_in_root"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "response_code"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      },
                      "response_proc_options": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "max_inmemory_size": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "response_generation_type": {
                            "description": "Defines how validator generate error response, when internal - using direct generation in java call, when external - native redirect to error page, by default internal",
                            "type": "string",
                            "enum": [
                              "internal",
                              "external"
                            ]
                          }
                        }
                      },
                      "request_error_code": {
                        "type": "integer"
                      },
                      "request_error_message": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "response_error_code": {
                        "type": "integer"
                      },
                      "response_error_message": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "trailing_garbage_policy": {
                        "type": "string",
                        "enum": [
                          "WEAK",
                          "STANDARD",
                          "STRONG"
                        ]
                      },
                      "action_when_no_rule": {
                        "description": "Defines behavior in case when request or response don't have apropriate rule to validate, if DENY - message blocked, if IGNORE - message processing continue By default - deny",
                        "type": "string",
                        "enum": [
                          "ignore",
                          "deny"
                        ]
                      },
                      "action": {
                        "description": "Defines behavior in case when request or response validation is failed, ignore - only log error, but request or response not blocked, deny - request/response blocked, by default - deny",
                        "type": "string",
                        "enum": [
                          "ignore",
                          "deny"
                        ]
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "response"
                          ],
                          "properties": {
                            "response": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "response_proc_options"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "request"
                          ],
                          "properties": {
                            "request": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "request_error_code"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "request"
                          ],
                          "properties": {
                            "request": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "request_error_message"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "response"
                          ],
                          "properties": {
                            "response": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "response_error_code"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "response"
                          ],
                          "properties": {
                            "response": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "response_error_message"
                            ]
                          }
                        }
                      }
                    ]
                  },
                  "validator_xsd": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "request": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "default": {
                              "description": "Specify the default rule",
                              "type": "boolean"
                            },
                            "url": {
                              "type": "string"
                            },
                            "method": {
                              "type": "string",
                              "enum": [
                                "post",
                                "put",
                                "delete",
                                "patch"
                              ]
                            },
                            "params": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "name": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "operator": {
                                    "type": "string",
                                    "enum": [
                                      "=",
                                      "!=",
                                      "~",
                                      "~*",
                                      "!~",
                                      "!~*"
                                    ]
                                  },
                                  "pattern": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  }
                                },
                                "required": [
                                  "name",
                                  "operator",
                                  "pattern"
                                ]
                              }
                            },
                            "transforms": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "Base64Decode",
                                  "ASN1ContentExtractor"
                                ]
                              }
                            },
                            "schema": {
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "wsdl": {
                              "type": "boolean"
                            },
                            "default_wsdl_style": {
                              "type": "string",
                              "enum": [
                                "document",
                                "rpc"
                              ]
                            }
                          },
                          "required": [
                            "schema"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "url"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "method"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "params"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "wsdl"
                                ],
                                "properties": {
                                  "wsdl": {
                                    "const": false
                                  }
                                }
                              }
                            }
                          ]
                        }
                      },
                      "request_limits": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "entityExpansionLimit": {
                            "description": "Limit the number of entity expansions. Default - 64000",
                            "type": "integer"
                          },
                          "elementAttributeLimit": {
                            "description": "Limit the number of attributes an element can have. Default - 10000",
                            "type": "integer"
                          },
                          "maxOccurLimit": {
                            "description": "Limit the number of content model nodes that may be created when building a grammar for a W3C XML Schema that contains maxOccurs attributes with values other than \"unbounded\". Default - 5000",
                            "type": "integer"
                          },
                          "totalEntitySizeLimit": {
                            "description": "Limit the total size of all entities that include general and parameter entities. The size is calculated as an aggregation of all entities. Default - 50000000",
                            "type": "integer"
                          },
                          "maxGeneralEntitySizeLimit": {
                            "description": "Limit the maximum size of any general entities. Default - 0",
                            "type": "integer"
                          },
                          "maxParameterEntitySizeLimit": {
                            "description": "Limit the maximum size of any parameter entities, including the result of nesting multiple parameter entities. Default - 1000000",
                            "type": "integer"
                          },
                          "entityReplacementLimit": {
                            "description": "Limit the total number of nodes in all entity references. Default - 3000000",
                            "type": "integer"
                          },
                          "maxElementDepth": {
                            "description": "Limit the maximum element depth. Default - 0",
                            "type": "integer"
                          },
                          "maxXMLNameLimit": {
                            "description": "Limit the maximum size of XML names, including element name, attribute name and namespace prefix and URI. Default - 1000",
                            "type": "integer"
                          }
                        }
                      },
                      "response": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "default": {
                              "description": "Specify the default rule",
                              "type": "boolean"
                            },
                            "url": {
                              "type": "string"
                            },
                            "method": {
                              "type": "string",
                              "enum": [
                                "get",
                                "post",
                                "put",
                                "delete",
                                "patch"
                              ]
                            },
                            "params": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "name": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "operator": {
                                    "type": "string",
                                    "enum": [
                                      "=",
                                      "!=",
                                      "~",
                                      "~*",
                                      "!~",
                                      "!~*"
                                    ]
                                  },
                                  "pattern": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  }
                                },
                                "required": [
                                  "name",
                                  "operator",
                                  "pattern"
                                ]
                              }
                            },
                            "transforms": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "Base64Decode",
                                  "ASN1ContentExtractor"
                                ]
                              }
                            },
                            "schema": {
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "wsdl": {
                              "type": "boolean"
                            },
                            "default_wsdl_style": {
                              "type": "string",
                              "enum": [
                                "document",
                                "rpc"
                              ]
                            },
                            "response_code": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "operator": {
                                  "type": "string",
                                  "enum": [
                                    "=",
                                    "!=",
                                    "~",
                                    "~*",
                                    "!~",
                                    "!~*"
                                  ]
                                },
                                "pattern": {
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                }
                              },
                              "required": [
                                "operator",
                                "pattern"
                              ]
                            }
                          },
                          "required": [
                            "schema"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "url"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "method"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "params"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "wsdl"
                                ],
                                "properties": {
                                  "wsdl": {
                                    "const": false
                                  }
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "default"
                                ],
                                "properties": {
                                  "default": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "response_code"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      },
                      "response_limits": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "entityExpansionLimit": {
                            "description": "Limit the number of entity expansions. Default - 64000",
                            "type": "integer"
                          },
                          "elementAttributeLimit": {
                            "description": "Limit the number of attributes an element can have. Default - 10000",
                            "type": "integer"
                          },
                          "maxOccurLimit": {
                            "description": "Limit the number of content model nodes that may be created when building a grammar for a W3C XML Schema that contains maxOccurs attributes with values other than \"unbounded\". Default - 5000",
                            "type": "integer"
                          },
                          "totalEntitySizeLimit": {
                            "description": "Limit the total size of all entities that include general and parameter entities. The size is calculated as an aggregation of all entities. Default - 50000000",
                            "type": "integer"
                          },
                          "maxGeneralEntitySizeLimit": {
                            "description": "Limit the maximum size of any general entities. Default - 0",
                            "type": "integer"
                          },
                          "maxParameterEntitySizeLimit": {
                            "description": "Limit the maximum size of any parameter entities, including the result of nesting multiple parameter entities. Default - 1000000",
                            "type": "integer"
                          },
                          "entityReplacementLimit": {
                            "description": "Limit the total number of nodes in all entity references. Default - 3000000",
                            "type": "integer"
                          },
                          "maxElementDepth": {
                            "description": "Limit the maximum element depth. Default - 0",
                            "type": "integer"
                          },
                          "maxXMLNameLimit": {
                            "description": "Limit the maximum size of XML names, including element name, attribute name and namespace prefix and URI. Default - 1000",
                            "type": "integer"
                          }
                        }
                      },
                      "response_proc_options": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "max_inmemory_size": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "response_generation_type": {
                            "description": "Defines how validator generate error response, when internal - using direct generation in java call, when external - native redirect to error page, by default internal",
                            "type": "string",
                            "enum": [
                              "internal",
                              "external"
                            ]
                          }
                        }
                      },
                      "request_error_code": {
                        "type": "integer"
                      },
                      "request_error_message": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "response_error_code": {
                        "type": "integer"
                      },
                      "response_error_message": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "action_when_no_rule": {
                        "description": "Defines behavior in case when request or response don't have apropriate rule to validate, if DENY - message blocked, if IGNORE - message processing continue By default - deny",
                        "type": "string",
                        "enum": [
                          "ignore",
                          "deny"
                        ]
                      },
                      "action": {
                        "description": "Defines behavior in case when request or response validation is failed, ignore - only log error, but request or response not blocked, deny - request/response blocked, by default - deny",
                        "type": "string",
                        "enum": [
                          "ignore",
                          "deny"
                        ]
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "request"
                          ],
                          "properties": {
                            "request": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "request_limits"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "response"
                          ],
                          "properties": {
                            "response": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "response_limits"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "response"
                          ],
                          "properties": {
                            "response": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "response_proc_options"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "request"
                          ],
                          "properties": {
                            "request": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "request_error_code"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "request"
                          ],
                          "properties": {
                            "request": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "request_error_message"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "response"
                          ],
                          "properties": {
                            "response": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "response_error_code"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "response"
                          ],
                          "properties": {
                            "response": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "response_error_message"
                            ]
                          }
                        }
                      }
                    ]
                  }
                }
              },
              "modifiers": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "set_header": {
                    "description": "Allows to redefine or replace header in client request.",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "proxy_host_resolved": {
                    "description": "Determines whether the original peer name or its resolved IP representation will be pass to the upstream in header \"Host\". Default is false.",
                    "type": "boolean"
                  },
                  "pass_header": {
                    "description": "Allows passing forbidden headers from the upstream to the client.",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "proxy_redirect": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "sub_filter": {
                    "description": "Allows to make replace from one string to another in the upstream response.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "once": {
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "last_modified": {
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "replace": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "from": {
                              "type": "string"
                            },
                            "to": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "from",
                            "to"
                          ]
                        }
                      }
                    },
                    "required": [
                      "replace"
                    ]
                  },
                  "subs_filter": {
                    "description": "Allows to make replace from one string to another in the upstream response using regular expressions.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "mime_types": {
                        "description": "Default \"*\"",
                        "type": "string"
                      },
                      "replace": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "from": {
                              "type": "string"
                            },
                            "to": {
                              "type": "string"
                            },
                            "flags": {
                              "description": "Default \"r\"",
                              "type": "array",
                              "uniqueItems": true,
                              "items": {
                                "type": "string",
                                "enum": [
                                  "i",
                                  "g",
                                  "o",
                                  "r"
                                ]
                              }
                            }
                          },
                          "required": [
                            "from",
                            "to"
                          ]
                        }
                      }
                    },
                    "required": [
                      "replace"
                    ]
                  },
                  "cors": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "origin_wl": {
                        "description": "Specifies whitelist for the Origin header.",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "origin_wl_type": {
                        "description": "Specifies type for the 'origin_wl' directive. 're' - whitelist with regex values, 'recl' - whitelist with caseless regex values. If not specified, then full match used.",
                        "type": "string",
                        "enum": [
                          "re",
                          "recl"
                        ]
                      },
                      "origin_allow_null_wl": {
                        "description": "Specifies whitelist of hosts whom allowed 'Origin null'.",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "origin_allow_null_wl_type": {
                        "description": "Specifies type for the 'origin_allow_null_wl' directive. 're' - whitelist with regex values, 'recl' - whitelist with caseless regex values. If not specified, then full match used.",
                        "type": "string",
                        "enum": [
                          "re",
                          "recl"
                        ]
                      },
                      "method_wl": {
                        "description": "Specifies whitelist for the request method. Used in prefligth request.",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "get",
                            "head",
                            "post",
                            "put",
                            "connect",
                            "options",
                            "trace",
                            "patch",
                            "delete"
                          ]
                        }
                      },
                      "deny_status": {
                        "description": "Specifies the deny status when CORS checks is failed. By default is 403.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(4|5)[0-9]{2}$"
                      }
                    },
                    "required": [
                      "origin_wl",
                      "method_wl"
                    ]
                  },
                  "set_output_headers": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "headers": {
                          "description": "Specifies header line. For example 'X-MyHeader foo'.",
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "status_codes": {
                          "description": "Specifies status code criteria.",
                          "type": "array",
                          "items": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^[1-5][0-9]{2}$"
                          }
                        },
                        "content_types": {
                          "description": "Specifies content type criteria in response headers. For example 'text/html'.",
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "conditions": {
                          "description": "Specifies the conditions file for the headers.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "conditions_reverse": {
                          "type": "boolean"
                        },
                        "set_var": {
                          "description": "Setting variable for use in this headers. For example '$orig_xff $http_x_forwarded_for'.",
                          "type": "string"
                        },
                        "value_regex": {
                          "description": "Updates an existing header if it's current value matches the specified regular expression. Example '~*session=.*'",
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "required": [
                        "headers"
                      ],
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "conditions"
                            ],
                            "properties": {
                              "conditions": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "conditions_reverse"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  },
                  "set_input_headers": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "headers": {
                          "description": "Specifies header line. For example 'X-MyHeader foo'.",
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "content_types": {
                          "description": "Specifies content type criteria in request headers. For example 'text/html'.",
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "conditions": {
                          "description": "Specifies the conditions file for the headers.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "conditions_reverse": {
                          "type": "boolean"
                        },
                        "set_var": {
                          "description": "Setting variable for use in this headers. For example '$orig_xff $http_x_forwarded_for'.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "headers"
                      ],
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "conditions"
                            ],
                            "properties": {
                              "conditions": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "conditions_reverse"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  }
                },
                "allOf": [
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        ".."
                      ],
                      "properties": {
                        "..": {
                          "properties": {
                            "optional": {
                              "type": "object",
                              "required": [
                                "http_version"
                              ],
                              "properties": {
                                "http_version": {}
                              }
                            }
                          }
                        }
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_redirect"
                        ]
                      }
                    }
                  }
                ]
              },
              "postprocessors": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "postprocessor_error": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "code": {
                        "description": "Specifies an array of error codes by which templates will be generated.",
                        "type": "array",
                        "items": {
                          "type": "integer"
                        }
                      },
                      "pattern_file": {
                        "description": "Specifies pattern file which will be used as response body.",
                        "type": "string",
                        "enum": [
                          "OSWP_Error_template.json",
                          "abo_errors_schema.json",
                          "default_json.json",
                          "errors_schema.json",
                          "errors_schema_v_1.0.json",
                          "vrvr_error_template.json",
                          "workflow_error_schema.json"
                        ]
                      },
                      "custom_pattern_file": {
                        "description": "Specifies rule file which describes how to fill pattern file.",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "rules_file": {
                        "description": "Specifies rule file which describes how to fill pattern file. Default - rules file from system resources.",
                        "type": "string",
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "content_type": {
                        "description": "Specifies content type for response header. Default - none.",
                        "type": "string"
                      },
                      "grpc_error_processing": {
                        "description": "Specifies whether service is a grpc proxy or not, and enables grpc error processing.",
                        "type": "boolean"
                      },
                      "skip_for_upstream_statuses": {
                        "description": "Specifies regex for upstream response status on which response generator will not be used. Default - none.",
                        "type": "string"
                      },
                      "handle_upstream_errors": {
                        "description": "Specifies handle upstream errors or not. True by default.",
                        "type": "boolean"
                      },
                      "handle_upstream_errors_status": {
                        "type": "array",
                        "items": {
                          "type": "integer",
                          "pattern": "^[3-5]\\d\\d$"
                        }
                      },
                      "redirect": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "code": {
                            "description": "Specifies redirect status code",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              301,
                              302,
                              303,
                              307,
                              308
                            ]
                          },
                          "url": {
                            "description": "Defines url to redirect - sets Location response header.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(?:http:\\/\\/|https:\\/\\/|$scheme).+$"
                          }
                        },
                        "required": [
                          "code",
                          "url"
                        ]
                      }
                    }
                  }
                }
              }
            },
            "required": [
              "id",
              "url"
            ],
            "allOf": [
              {
                "if": {
                  "type": "object",
                  "required": [
                    "upstream_groups"
                  ],
                  "properties": {
                    "upstream_groups": {
                      "pattern": ".+"
                    }
                  }
                },
                "else": {
                  "not": {
                    "required": [
                      "use_upstream_groups"
                    ]
                  }
                }
              }
            ]
          }
        },
        "service_static": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "Specifies the unique id for the service.",
                "type": [
                  "number",
                  "string"
                ],
                "pattern": "^[^.\\/\\\\()]+$"
              },
              "name": {
                "description": "Human readable Service identifier printed in log messages",
                "type": [
                  "number",
                  "string"
                ]
              },
              "profile_version": {
                "description": "Specifies profile version of this service",
                "type": [
                  "number",
                  "string"
                ]
              },
              "description": {
                "type": [
                  "number",
                  "string"
                ]
              },
              "listen": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "address": {
                      "description": "specifies ip/hostname on which the socket will listen.",
                      "type": [
                        "number",
                        "string"
                      ]
                    },
                    "port": {
                      "description": "specifies port on which the socket will listen",
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 65535
                    },
                    "allow_http2": {
                      "description": "Allow to accept http2 connection. Default - false",
                      "type": "boolean"
                    },
                    "proxy_protocol": {
                      "description": "Accept proxy protocol. Http requests will not be handler with this flag. Default - false",
                      "type": "boolean"
                    },
                    "http2_only": {
                      "description": "Allow to pass only http2 protocol connection. Default - off",
                      "type": "string",
                      "enum": [
                        "on",
                        "off"
                      ]
                    },
                    "ssl": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "sspi": {
                          "description": "Enables GOST TLS mode. Default id false.",
                          "type": "boolean"
                        },
                        "client_verify_local_crl_only": {
                          "description": "GOST mode. Specifies whether to check the certificate status locally (otherwise check online). Default is \"off\" (online check).",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "buffer_size": {
                          "description": "GOST mode. Specifies payload length in TLS record (min 1024, max 16384). Default is 16384 bytes.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^([0-9]+[kK]{1})|([0-9]+)$"
                        },
                        "certificate": {
                          "description": "specifies name of the certificate wich will be used. Certificate must be placed in \"resource\" directory.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "certificate_key": {
                          "description": "specifies name of the certificate key wich will be used. Certificate key must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "password_file": {
                          "description": "specifies name of the password file with secret keys for \"certificate_key\". Password file must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "client_certificate": {
                          "description": "specifies name of the client certificate wich will be used. Client Certificate must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_client": {
                          "description": "Enables verification of client certificates. Default - no",
                          "type": "string"
                        },
                        "ocsp": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "enabled": {
                              "description": "Enables OCSP validation of the client certificate chain",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "depth": {
                              "description": "Specify depth of certificate validation.",
                              "type": "integer",
                              "minimum": 1
                            },
                            "mode": {
                              "description": "Specify mode. In strict mode request will be blocked in case unsuccessfull certiticate checking, in flexible mode - request will not be blocked. Strict by default.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "strict",
                                "flexible"
                              ]
                            },
                            "cache": {
                              "description": "Sets name and size of the cache that stores client certificates status for OCSP validation. The cache is shared between all worker processes",
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "size": {
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                },
                                "lifetime": {
                                  "description": "Specifies cache lifetime. 3600 seconds by default",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                                }
                              },
                              "required": [
                                "name",
                                "size"
                              ]
                            },
                            "use_cert_responder": {
                              "description": "Defines use or not responder from certificate(if specified). False by default",
                              "type": "boolean"
                            },
                            "responder_timeout": {
                              "description": "Specifies responder timeout. 60000 milliseconds by default",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                            },
                            "responders": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "regex;(.+)": {
                                  "type": "array",
                                  "uniqueItems": true,
                                  "items": {
                                    "description": "Specifies the URL of the OCSP responder specified in the “Authority Information Access” certificate extension for validation of client certificates. Only http:// OCSP responders are supported",
                                    "type": [
                                      "number",
                                      "string"
                                    ],
                                    "pattern": "^(?:http:\\/\\/).+$"
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "enabled",
                            "depth"
                          ]
                        },
                        "verify_dn_trusted_path": {
                          "description": "Turn on verification of client dn. Use this file to match all regex dn from this file with dn of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_client_error_code": {
                          "description": "Defines the response code if verification client certificate failed. Default value is \"495\"(400)",
                          "type": "integer"
                        },
                        "verify_fingerprint_trusted_path": {
                          "description": "Turn on verification of client fingerprint. Use this file to match all fingerprints from file with fingerprint of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_depth": {
                          "description": "Sets the verification depth in the client certificates chain. Default - 1",
                          "type": "integer"
                        },
                        "protocols": {
                          "description": "specifies used ciphers. The default value is \"LSv1 TLSv1.1 TLSv1.2\" for RSA, and \"TLSv1\" for GOST",
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string"
                          }
                        },
                        "ciphers": {
                          "description": "specifies group of ciphes. The default value is \"HIGH:!aNULL:!MD5\".",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "prefix": {
                                "type": "string",
                                "enum": [
                                  "!",
                                  "+",
                                  "-"
                                ]
                              },
                              "value": {
                                "type": "array",
                                "uniqueItems": true,
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "DEFAULT",
                                    "COMPLEMENTOFDEFAULT",
                                    "ALL",
                                    "COMPLEMENTOFALL",
                                    "HIGH",
                                    "MEDIUM",
                                    "LOW",
                                    "EXP",
                                    "EXPORT",
                                    "EXPORT40",
                                    "EXPORT56",
                                    "eNULL",
                                    "NULL",
                                    "aNULL",
                                    "kRSA",
                                    "RSA",
                                    "kDHr",
                                    "kDHd",
                                    "kDH",
                                    "kDHE",
                                    "kEDH",
                                    "DHE",
                                    "EDH",
                                    "ADH",
                                    "DH",
                                    "kECDHr",
                                    "kECDHe",
                                    "kECDH",
                                    "kECDHE",
                                    "kEECDH",
                                    "ECDHE",
                                    "EECDH",
                                    "AECDH",
                                    "ECDH",
                                    "aRSA",
                                    "aDSS",
                                    "DSS",
                                    "aDH",
                                    "aECDH",
                                    "aECDSA",
                                    "ECDSA",
                                    "kFZA",
                                    "aFZA",
                                    "eFZA",
                                    "FZA",
                                    "TLSv1.2",
                                    "TLSv1",
                                    "SSLv3",
                                    "SSLv2",
                                    "AES128",
                                    "AES256",
                                    "AES",
                                    "AESGCM",
                                    "CAMELLIA128",
                                    "CAMELLIA256",
                                    "CAMELLIA",
                                    "3DES",
                                    "DES",
                                    "RC4",
                                    "RC2",
                                    "IDEA",
                                    "SEED",
                                    "MD5",
                                    "SHA1",
                                    "SHA",
                                    "SHA256",
                                    "SHA384",
                                    "aGOST",
                                    "aGOST01",
                                    "aGOST94",
                                    "kGOST",
                                    "GOST94",
                                    "GOST89MAC",
                                    "PSK",
                                    "SUITEB128",
                                    "SUITEB128ONLY",
                                    "SUITEB192",
                                    "@STRENGTH",
                                    "NULL-SHA256"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "value"
                            ]
                          }
                        },
                        "ciphers_str": {
                          "description": "specifies string of ciphers.",
                          "type": "string"
                        },
                        "dhparam": {
                          "description": "Specifies a file with DH parameters for DHE ciphers and enable usage of DHE ciphers.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "session_timeout": {
                          "description": "specifies timeout of the ssl session. The default value is \"10m\"",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                        },
                        "session_cache": {
                          "description": "specifies cache size for ssl session. The default value evaluates automatically.",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "off",
                                "none",
                                "builtin",
                                "shared"
                              ]
                            },
                            "name": {
                              "type": "string"
                            },
                            "size": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "reject_handshake": {
                          "description": "specifies whether reject all SSL handshake with a different server name (strict SNI check). Default is false.",
                          "type": "boolean"
                        },
                        "stapling": {
                          "description": "enables or disables stapling of OCSP responses by the server. Default - false.",
                          "type": "boolean"
                        },
                        "stapling_file": {
                          "description": "when set, the stapled OCSP response will be taken from the specified file instead of querying the OCSP responder specified in the server certificate.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "stapling_responder": {
                          "description": "overrides the URL of the OCSP responder specified in the “Authority Information Access” certificate extension.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "stapling_verify": {
                          "description": "enables or disables verification of OCSP responses by the server. For verification to work, the certificate of the server certificate issuer, the root certificate, and all intermediate certificates should be configured as trusted using the trusted_certificate directive. Default - false.",
                          "type": "boolean"
                        },
                        "trusted_certificate": {
                          "description": "specifies a file with trusted CA certificates in the PEM format used to verify client certificates and OCSP responses if stapling is enabled.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        }
                      },
                      "required": [
                        "certificate"
                      ],
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling_verify"
                            ],
                            "properties": {
                              "stapling_verify": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "then": {
                            "required": [
                              "trusted_certificate"
                            ]
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "verify_dn_trusted_path"
                            ],
                            "properties": {
                              "verify_dn_trusted_path": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "verify_client_error_code"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "verify_fingerprint_trusted_path"
                            ],
                            "properties": {
                              "verify_fingerprint_trusted_path": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "verify_client_error_code"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "ciphers_str"
                            ],
                            "properties": {
                              "ciphers_str": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "ciphers"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "ciphers"
                            ],
                            "properties": {
                              "ciphers": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "ciphers_str"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "certificate"
                            ],
                            "properties": {
                              "certificate": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_file"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_responder"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_verify"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling_verify"
                            ],
                            "properties": {
                              "stapling_verify": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "trusted_certificate"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              },
              "hostname": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "url": {
                "description": "Defines the relative URL by which the service will work.",
                "type": "string"
              },
              "response_headers": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "description": "Defines response header name.",
                      "type": "string",
                      "pattern": "^.+$"
                    },
                    "value": {
                      "description": "Defines response header value.",
                      "type": "string"
                    },
                    "value_from_header": {
                      "description": "Specifies request header name for setting it's value to the response header.",
                      "type": "string",
                      "pattern": "^.+$"
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "allOf": [
                    {
                      "if": {
                        "type": "object",
                        "required": [
                          "value_from_header"
                        ],
                        "properties": {
                          "value_from_header": {}
                        }
                      },
                      "else": {
                        "required": [
                          "value"
                        ]
                      }
                    },
                    {
                      "if": {
                        "type": "object",
                        "required": [
                          "value"
                        ],
                        "properties": {
                          "value": {}
                        }
                      },
                      "else": {
                        "required": [
                          "value_from_header"
                        ]
                      }
                    },
                    {
                      "if": {
                        "type": "object",
                        "required": [
                          "value_from_header"
                        ],
                        "properties": {
                          "value_from_header": {}
                        }
                      },
                      "then": {
                        "not": {
                          "required": [
                            "value"
                          ]
                        }
                      }
                    },
                    {
                      "if": {
                        "type": "object",
                        "required": [
                          "value"
                        ],
                        "properties": {
                          "value": {}
                        }
                      },
                      "then": {
                        "not": {
                          "required": [
                            "value_from_header"
                          ]
                        }
                      }
                    }
                  ]
                }
              },
              "chains": {
                "description": "The action bus",
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "request_chains": {
                    "description": "Specifies chain of actions for the request.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "message": {
                          "description": "Text for analysis. May contain variables. E.g. $shared_request_body",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "phase": {
                          "description": "The phase at which actions form \"action_list\" will be executed. Default is access.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "rewrite",
                            "access"
                          ]
                        },
                        "trace_config": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "enableAllActions": {
                              "description": "enable tracing of all actions in chains",
                              "type": "boolean"
                            },
                            "enableAllChains": {
                              "description": "enable tracing of all actions in child chains",
                              "type": "boolean"
                            },
                            "mode": {
                              "description": "Enable or disable tracing at this level.",
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "enabled": {
                                  "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "enum": [
                                    "on",
                                    "off",
                                    "var_based"
                                  ]
                                },
                                "var": {
                                  "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                }
                              }
                            },
                            "spanAttributes": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "name": {
                                    "description": "name of attribute",
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "value": {
                                    "description": "value of attribute, can contain variables",
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  }
                                }
                              }
                            },
                            "spanName": {
                              "description": "Specify name of span",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "enableSocketsTracing": {
                              "description": "Enable or disable socket tracing, by default enabled",
                              "type": "boolean"
                            }
                          }
                        },
                        "requiredChildOneOf": {
                          "description": "Specifies unverifed action check",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "decision": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "BLOCK",
                                "WARN"
                              ]
                            },
                            "onlyCheckers": {
                              "type": "boolean"
                            },
                            "include": {
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            },
                            "exclude": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "required": [
                            "decision"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "exclude"
                                ],
                                "properties": {
                                  "exclude": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "include"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "include"
                                ],
                                "properties": {
                                  "include": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "exclude"
                                  ]
                                }
                              }
                            }
                          ]
                        },
                        "actions": {
                          "description": "Specifies a list of actions.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "action": {
                                "description": "Specifies an action to perform",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "ASN1ContentExtractor",
                                  "Base64Decode",
                                  "ConditionChecker",
                                  "CheckDataSize",
                                  "CheckMimeType",
                                  "JsonPathExtract",
                                  "JsonPathExtractToVars",
                                  "JsonValidation",
                                  "XsdValidation",
                                  "PostFormDataToFlateJson",
                                  "MultipartExtract",
                                  "SetMessageFromVar",
                                  "SetVarFromMessage",
                                  "JwsToJson",
                                  "XPathExtract",
                                  "XPathExtractToVars",
                                  "SharedMapDeleter",
                                  "SharedMapRemover",
                                  "SharedMapSetter",
                                  "SharedMapGetter",
                                  "RandomNumberToVar",
                                  "VarsToSharedMap",
                                  "SharedMapToVars",
                                  "AntivirusFileChecker",
                                  "MtomExtractor",
                                  "JsonTransformer",
                                  "SetVar",
                                  "GraphQLRequestValidation",
                                  "ProtobufValidation",
                                  "OpenApiValidation",
                                  "DelimiterSplitter",
                                  "VarsToFile",
                                  "FileToVars",
                                  "WsdlValidation",
                                  "HttpFilter",
                                  "ProtobufToJson",
                                  "FilterMds",
                                  "OcspSignValidator",
                                  "OcspToJson",
                                  "ASN1ToJson",
                                  "XmlTransformer",
                                  "UrlEncode",
                                  "UrlDecodeUni",
                                  "UrlDecode",
                                  "HexDecode",
                                  "HexEncode",
                                  "ToLowerCase",
                                  "ToUpperCase",
                                  "Utf8ToUnicode",
                                  "Trim",
                                  "ICAPFileChecker",
                                  "MessageToFile",
                                  "MultipartFormGenerateFromVar",
                                  "HttpSender",
                                  "MessageAccumulator",
                                  "MessageFromAccumulator",
                                  "MessageFromPattern",
                                  "MultipartFormGenerateFromMessage",
                                  "JsonPatchMessage",
                                  "JsonPatchVar",
                                  "DigestFromMessage",
                                  "Base64Encode",
                                  "HMac",
                                  "FileToMessage",
                                  "JwtVerifier",
                                  "CharsetChecker",
                                  "LdapSearch",
                                  "UnicodeDecode",
                                  "MessageMapper",
                                  "SimpleRateLimiter",
                                  "EventSourceConverter",
                                  "LazySessionTimeChecker",
                                  "CalculateMessageProperties"
                                ]
                              },
                              "id": {
                                "description": "An identificator of action",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "conditions": {
                                "description": "Specifies the conditions for performina an action.",
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "var": {
                                      "description": "Specifies a variable to check.",
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    },
                                    "operator": {
                                      "description": "Specifies an operator.",
                                      "type": [
                                        "number",
                                        "string"
                                      ],
                                      "enum": [
                                        "=",
                                        "!=",
                                        "<=",
                                        ">=",
                                        ">",
                                        "<",
                                        "in",
                                        "not_in",
                                        "~",
                                        "~*",
                                        "!~",
                                        "!~*",
                                        "ip_range",
                                        "!ip_range",
                                        "dn_mask",
                                        "!dn_mask"
                                      ]
                                    },
                                    "val": {
                                      "description": "Specifies a value to check.",
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "var",
                                    "operator",
                                    "val"
                                  ]
                                }
                              },
                              "trace_config": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "enableAllActions": {
                                    "description": "enable tracing of all actions in chains",
                                    "type": "boolean"
                                  },
                                  "enableAllChains": {
                                    "description": "enable tracing of all actions in child chains",
                                    "type": "boolean"
                                  },
                                  "mode": {
                                    "description": "Enable or disable tracing at this level.",
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "enabled": {
                                        "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                        "type": [
                                          "number",
                                          "string"
                                        ],
                                        "enum": [
                                          "on",
                                          "off",
                                          "var_based"
                                        ]
                                      },
                                      "var": {
                                        "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                        "type": [
                                          "number",
                                          "string"
                                        ]
                                      }
                                    }
                                  },
                                  "spanAttributes": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "name": {
                                          "description": "name of attribute",
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "value": {
                                          "description": "value of attribute, can contain variables",
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "spanName": {
                                    "description": "Specify name of span",
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "enableSocketsTracing": {
                                    "description": "Enable or disable socket tracing, by default enabled",
                                    "type": "boolean"
                                  }
                                }
                              },
                              "params": {
                                "description": "Specifies extra parameters for the actions.",
                                "type": "object",
                                "additionalProperties": true
                              },
                              "requiredChildOneOf": {
                                "description": "Specifies unverifed action check",
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "decision": {
                                    "type": [
                                      "number",
                                      "string"
                                    ],
                                    "enum": [
                                      "BLOCK",
                                      "WARN"
                                    ]
                                  },
                                  "onlyCheckers": {
                                    "type": "boolean"
                                  },
                                  "include": {
                                    "type": "array",
                                    "items": {
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    }
                                  },
                                  "exclude": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  }
                                },
                                "required": [
                                  "decision"
                                ],
                                "allOf": [
                                  {
                                    "if": {
                                      "type": "object",
                                      "required": [
                                        "exclude"
                                      ],
                                      "properties": {
                                        "exclude": {}
                                      }
                                    },
                                    "then": {
                                      "not": {
                                        "required": [
                                          "include"
                                        ]
                                      }
                                    }
                                  },
                                  {
                                    "if": {
                                      "type": "object",
                                      "required": [
                                        "include"
                                      ],
                                      "properties": {
                                        "include": {}
                                      }
                                    },
                                    "then": {
                                      "not": {
                                        "required": [
                                          "exclude"
                                        ]
                                      }
                                    }
                                  }
                                ]
                              },
                              "actions": {
                                "description": "Specifies a list of actions.",
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "action": {
                                      "description": "Specifies an action to perform",
                                      "type": [
                                        "number",
                                        "string"
                                      ],
                                      "enum": [
                                        "ASN1ContentExtractor",
                                        "Base64Decode",
                                        "ConditionChecker",
                                        "CheckDataSize",
                                        "CheckMimeType",
                                        "JsonPathExtract",
                                        "JsonPathExtractToVars",
                                        "JsonValidation",
                                        "XsdValidation",
                                        "PostFormDataToFlateJson",
                                        "MultipartExtract",
                                        "SetMessageFromVar",
                                        "SetVarFromMessage",
                                        "JwsToJson",
                                        "XPathExtract",
                                        "XPathExtractToVars",
                                        "SharedMapDeleter",
                                        "SharedMapRemover",
                                        "SharedMapSetter",
                                        "SharedMapGetter",
                                        "RandomNumberToVar",
                                        "VarsToSharedMap",
                                        "SharedMapToVars",
                                        "AntivirusFileChecker",
                                        "MtomExtractor",
                                        "JsonTransformer",
                                        "SetVar",
                                        "GraphQLRequestValidation",
                                        "ProtobufValidation",
                                        "OpenApiValidation",
                                        "DelimiterSplitter",
                                        "VarsToFile",
                                        "FileToVars",
                                        "WsdlValidation",
                                        "HttpFilter",
                                        "ProtobufToJson",
                                        "FilterMds",
                                        "OcspSignValidator",
                                        "OcspToJson",
                                        "ASN1ToJson",
                                        "XmlTransformer",
                                        "UrlEncode",
                                        "UrlDecodeUni",
                                        "UrlDecode",
                                        "HexDecode",
                                        "HexEncode",
                                        "ToLowerCase",
                                        "ToUpperCase",
                                        "Utf8ToUnicode",
                                        "Trim",
                                        "ICAPFileChecker",
                                        "MessageToFile",
                                        "MultipartFormGenerateFromVar",
                                        "HttpSender",
                                        "MessageAccumulator",
                                        "MessageFromAccumulator",
                                        "MessageFromPattern",
                                        "MultipartFormGenerateFromMessage",
                                        "JsonPatchMessage",
                                        "JsonPatchVar",
                                        "DigestFromMessage",
                                        "Base64Encode",
                                        "HMac",
                                        "FileToMessage",
                                        "JwtVerifier",
                                        "CharsetChecker",
                                        "LdapSearch",
                                        "UnicodeDecode",
                                        "MessageMapper",
                                        "SimpleRateLimiter",
                                        "EventSourceConverter",
                                        "LazySessionTimeChecker",
                                        "CalculateMessageProperties"
                                      ]
                                    },
                                    "id": {
                                      "description": "An identificator of action",
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    },
                                    "conditions": {
                                      "description": "Specifies the conditions for performina an action.",
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "additionalProperties": false,
                                        "properties": {
                                          "var": {
                                            "description": "Specifies a variable to check.",
                                            "type": [
                                              "number",
                                              "string"
                                            ]
                                          },
                                          "operator": {
                                            "description": "Specifies an operator.",
                                            "type": [
                                              "number",
                                              "string"
                                            ],
                                            "enum": [
                                              "=",
                                              "!=",
                                              "<=",
                                              ">=",
                                              ">",
                                              "<",
                                              "in",
                                              "not_in",
                                              "~",
                                              "~*",
                                              "!~",
                                              "!~*",
                                              "ip_range",
                                              "!ip_range",
                                              "dn_mask",
                                              "!dn_mask"
                                            ]
                                          },
                                          "val": {
                                            "description": "Specifies a value to check.",
                                            "type": [
                                              "number",
                                              "string"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "var",
                                          "operator",
                                          "val"
                                        ]
                                      }
                                    },
                                    "trace_config": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "enableAllActions": {
                                          "description": "enable tracing of all actions in chains",
                                          "type": "boolean"
                                        },
                                        "enableAllChains": {
                                          "description": "enable tracing of all actions in child chains",
                                          "type": "boolean"
                                        },
                                        "mode": {
                                          "description": "Enable or disable tracing at this level.",
                                          "type": "object",
                                          "additionalProperties": false,
                                          "properties": {
                                            "enabled": {
                                              "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                              "type": [
                                                "number",
                                                "string"
                                              ],
                                              "enum": [
                                                "on",
                                                "off",
                                                "var_based"
                                              ]
                                            },
                                            "var": {
                                              "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                              "type": [
                                                "number",
                                                "string"
                                              ]
                                            }
                                          }
                                        },
                                        "spanAttributes": {
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "name": {
                                                "description": "name of attribute",
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              },
                                              "value": {
                                                "description": "value of attribute, can contain variables",
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              }
                                            }
                                          }
                                        },
                                        "spanName": {
                                          "description": "Specify name of span",
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "enableSocketsTracing": {
                                          "description": "Enable or disable socket tracing, by default enabled",
                                          "type": "boolean"
                                        }
                                      }
                                    },
                                    "params": {
                                      "description": "Specifies extra parameters for the actions.",
                                      "type": "object",
                                      "additionalProperties": true
                                    },
                                    "requiredChildOneOf": {
                                      "description": "Specifies unverifed action check",
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "decision": {
                                          "type": [
                                            "number",
                                            "string"
                                          ],
                                          "enum": [
                                            "BLOCK",
                                            "WARN"
                                          ]
                                        },
                                        "onlyCheckers": {
                                          "type": "boolean"
                                        },
                                        "include": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "number",
                                              "string"
                                            ]
                                          }
                                        },
                                        "exclude": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        }
                                      },
                                      "required": [
                                        "decision"
                                      ],
                                      "allOf": [
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "exclude"
                                            ],
                                            "properties": {
                                              "exclude": {}
                                            }
                                          },
                                          "then": {
                                            "not": {
                                              "required": [
                                                "include"
                                              ]
                                            }
                                          }
                                        },
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "include"
                                            ],
                                            "properties": {
                                              "include": {}
                                            }
                                          },
                                          "then": {
                                            "not": {
                                              "required": [
                                                "exclude"
                                              ]
                                            }
                                          }
                                        }
                                      ]
                                    },
                                    "actions": {
                                      "description": "Specifies a list of actions.",
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "additionalProperties": false,
                                        "properties": {
                                          "action": {
                                            "description": "Specifies an action to perform",
                                            "type": [
                                              "number",
                                              "string"
                                            ],
                                            "enum": [
                                              "ASN1ContentExtractor",
                                              "Base64Decode",
                                              "ConditionChecker",
                                              "CheckDataSize",
                                              "CheckMimeType",
                                              "JsonPathExtract",
                                              "JsonPathExtractToVars",
                                              "JsonValidation",
                                              "XsdValidation",
                                              "PostFormDataToFlateJson",
                                              "MultipartExtract",
                                              "SetMessageFromVar",
                                              "SetVarFromMessage",
                                              "JwsToJson",
                                              "XPathExtract",
                                              "XPathExtractToVars",
                                              "SharedMapDeleter",
                                              "SharedMapRemover",
                                              "SharedMapSetter",
                                              "SharedMapGetter",
                                              "RandomNumberToVar",
                                              "VarsToSharedMap",
                                              "SharedMapToVars",
                                              "AntivirusFileChecker",
                                              "MtomExtractor",
                                              "JsonTransformer",
                                              "SetVar",
                                              "GraphQLRequestValidation",
                                              "ProtobufValidation",
                                              "OpenApiValidation",
                                              "DelimiterSplitter",
                                              "VarsToFile",
                                              "FileToVars",
                                              "WsdlValidation",
                                              "HttpFilter",
                                              "ProtobufToJson",
                                              "FilterMds",
                                              "OcspSignValidator",
                                              "OcspToJson",
                                              "ASN1ToJson",
                                              "XmlTransformer",
                                              "UrlEncode",
                                              "UrlDecodeUni",
                                              "UrlDecode",
                                              "HexDecode",
                                              "HexEncode",
                                              "ToLowerCase",
                                              "ToUpperCase",
                                              "Utf8ToUnicode",
                                              "Trim",
                                              "ICAPFileChecker",
                                              "MessageToFile",
                                              "MultipartFormGenerateFromVar",
                                              "HttpSender",
                                              "MessageAccumulator",
                                              "MessageFromAccumulator",
                                              "MessageFromPattern",
                                              "MultipartFormGenerateFromMessage",
                                              "JsonPatchMessage",
                                              "JsonPatchVar",
                                              "DigestFromMessage",
                                              "Base64Encode",
                                              "HMac",
                                              "FileToMessage",
                                              "JwtVerifier",
                                              "CharsetChecker",
                                              "LdapSearch",
                                              "UnicodeDecode",
                                              "MessageMapper",
                                              "SimpleRateLimiter",
                                              "EventSourceConverter",
                                              "LazySessionTimeChecker",
                                              "CalculateMessageProperties"
                                            ]
                                          },
                                          "id": {
                                            "description": "An identificator of action",
                                            "type": [
                                              "number",
                                              "string"
                                            ]
                                          },
                                          "conditions": {
                                            "description": "Specifies the conditions for performina an action.",
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "additionalProperties": false,
                                              "properties": {
                                                "var": {
                                                  "description": "Specifies a variable to check.",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                },
                                                "operator": {
                                                  "description": "Specifies an operator.",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ],
                                                  "enum": [
                                                    "=",
                                                    "!=",
                                                    "<=",
                                                    ">=",
                                                    ">",
                                                    "<",
                                                    "in",
                                                    "not_in",
                                                    "~",
                                                    "~*",
                                                    "!~",
                                                    "!~*",
                                                    "ip_range",
                                                    "!ip_range",
                                                    "dn_mask",
                                                    "!dn_mask"
                                                  ]
                                                },
                                                "val": {
                                                  "description": "Specifies a value to check.",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "var",
                                                "operator",
                                                "val"
                                              ]
                                            }
                                          },
                                          "trace_config": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "enableAllActions": {
                                                "description": "enable tracing of all actions in chains",
                                                "type": "boolean"
                                              },
                                              "enableAllChains": {
                                                "description": "enable tracing of all actions in child chains",
                                                "type": "boolean"
                                              },
                                              "mode": {
                                                "description": "Enable or disable tracing at this level.",
                                                "type": "object",
                                                "additionalProperties": false,
                                                "properties": {
                                                  "enabled": {
                                                    "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                    "type": [
                                                      "number",
                                                      "string"
                                                    ],
                                                    "enum": [
                                                      "on",
                                                      "off",
                                                      "var_based"
                                                    ]
                                                  },
                                                  "var": {
                                                    "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                    "type": [
                                                      "number",
                                                      "string"
                                                    ]
                                                  }
                                                }
                                              },
                                              "spanAttributes": {
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "name": {
                                                      "description": "name of attribute",
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "value": {
                                                      "description": "value of attribute, can contain variables",
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    }
                                                  }
                                                }
                                              },
                                              "spanName": {
                                                "description": "Specify name of span",
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              },
                                              "enableSocketsTracing": {
                                                "description": "Enable or disable socket tracing, by default enabled",
                                                "type": "boolean"
                                              }
                                            }
                                          },
                                          "params": {
                                            "description": "Specifies extra parameters for the actions.",
                                            "type": "object",
                                            "additionalProperties": true
                                          },
                                          "requiredChildOneOf": {
                                            "description": "Specifies unverifed action check",
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "decision": {
                                                "type": [
                                                  "number",
                                                  "string"
                                                ],
                                                "enum": [
                                                  "BLOCK",
                                                  "WARN"
                                                ]
                                              },
                                              "onlyCheckers": {
                                                "type": "boolean"
                                              },
                                              "include": {
                                                "type": "array",
                                                "items": {
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                }
                                              },
                                              "exclude": {
                                                "type": "array",
                                                "items": {
                                                  "type": "string"
                                                }
                                              }
                                            },
                                            "required": [
                                              "decision"
                                            ],
                                            "allOf": [
                                              {
                                                "if": {
                                                  "type": "object",
                                                  "required": [
                                                    "exclude"
                                                  ],
                                                  "properties": {
                                                    "exclude": {}
                                                  }
                                                },
                                                "then": {
                                                  "not": {
                                                    "required": [
                                                      "include"
                                                    ]
                                                  }
                                                }
                                              },
                                              {
                                                "if": {
                                                  "type": "object",
                                                  "required": [
                                                    "include"
                                                  ],
                                                  "properties": {
                                                    "include": {}
                                                  }
                                                },
                                                "then": {
                                                  "not": {
                                                    "required": [
                                                      "exclude"
                                                    ]
                                                  }
                                                }
                                              }
                                            ]
                                          },
                                          "actions": {
                                            "description": "Specifies a list of actions.",
                                            "type": "array",
                                            "items": {
                                              "type": "object",
                                              "additionalProperties": false,
                                              "properties": {
                                                "action": {
                                                  "description": "Specifies an action to perform",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ],
                                                  "enum": [
                                                    "ASN1ContentExtractor",
                                                    "Base64Decode",
                                                    "ConditionChecker",
                                                    "CheckDataSize",
                                                    "CheckMimeType",
                                                    "JsonPathExtract",
                                                    "JsonPathExtractToVars",
                                                    "JsonValidation",
                                                    "XsdValidation",
                                                    "PostFormDataToFlateJson",
                                                    "MultipartExtract",
                                                    "SetMessageFromVar",
                                                    "SetVarFromMessage",
                                                    "JwsToJson",
                                                    "XPathExtract",
                                                    "XPathExtractToVars",
                                                    "SharedMapDeleter",
                                                    "SharedMapRemover",
                                                    "SharedMapSetter",
                                                    "SharedMapGetter",
                                                    "RandomNumberToVar",
                                                    "VarsToSharedMap",
                                                    "SharedMapToVars",
                                                    "AntivirusFileChecker",
                                                    "MtomExtractor",
                                                    "JsonTransformer",
                                                    "SetVar",
                                                    "GraphQLRequestValidation",
                                                    "ProtobufValidation",
                                                    "OpenApiValidation",
                                                    "DelimiterSplitter",
                                                    "VarsToFile",
                                                    "FileToVars",
                                                    "WsdlValidation",
                                                    "HttpFilter",
                                                    "ProtobufToJson",
                                                    "FilterMds",
                                                    "OcspSignValidator",
                                                    "OcspToJson",
                                                    "ASN1ToJson",
                                                    "XmlTransformer",
                                                    "UrlEncode",
                                                    "UrlDecodeUni",
                                                    "UrlDecode",
                                                    "HexDecode",
                                                    "HexEncode",
                                                    "ToLowerCase",
                                                    "ToUpperCase",
                                                    "Utf8ToUnicode",
                                                    "Trim",
                                                    "ICAPFileChecker",
                                                    "MessageToFile",
                                                    "MultipartFormGenerateFromVar",
                                                    "HttpSender",
                                                    "MessageAccumulator",
                                                    "MessageFromAccumulator",
                                                    "MessageFromPattern",
                                                    "MultipartFormGenerateFromMessage",
                                                    "JsonPatchMessage",
                                                    "JsonPatchVar",
                                                    "DigestFromMessage",
                                                    "Base64Encode",
                                                    "HMac",
                                                    "FileToMessage",
                                                    "JwtVerifier",
                                                    "CharsetChecker",
                                                    "LdapSearch",
                                                    "UnicodeDecode",
                                                    "MessageMapper",
                                                    "SimpleRateLimiter",
                                                    "EventSourceConverter",
                                                    "LazySessionTimeChecker",
                                                    "CalculateMessageProperties"
                                                  ]
                                                },
                                                "id": {
                                                  "description": "An identificator of action",
                                                  "type": [
                                                    "number",
                                                    "string"
                                                  ]
                                                },
                                                "conditions": {
                                                  "description": "Specifies the conditions for performina an action.",
                                                  "type": "array",
                                                  "items": {
                                                    "type": "object",
                                                    "additionalProperties": false,
                                                    "properties": {
                                                      "var": {
                                                        "description": "Specifies a variable to check.",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ]
                                                      },
                                                      "operator": {
                                                        "description": "Specifies an operator.",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ],
                                                        "enum": [
                                                          "=",
                                                          "!=",
                                                          "<=",
                                                          ">=",
                                                          ">",
                                                          "<",
                                                          "in",
                                                          "not_in",
                                                          "~",
                                                          "~*",
                                                          "!~",
                                                          "!~*",
                                                          "ip_range",
                                                          "!ip_range",
                                                          "dn_mask",
                                                          "!dn_mask"
                                                        ]
                                                      },
                                                      "val": {
                                                        "description": "Specifies a value to check.",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "var",
                                                      "operator",
                                                      "val"
                                                    ]
                                                  }
                                                },
                                                "trace_config": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "enableAllActions": {
                                                      "description": "enable tracing of all actions in chains",
                                                      "type": "boolean"
                                                    },
                                                    "enableAllChains": {
                                                      "description": "enable tracing of all actions in child chains",
                                                      "type": "boolean"
                                                    },
                                                    "mode": {
                                                      "description": "Enable or disable tracing at this level.",
                                                      "type": "object",
                                                      "additionalProperties": false,
                                                      "properties": {
                                                        "enabled": {
                                                          "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                          "type": [
                                                            "number",
                                                            "string"
                                                          ],
                                                          "enum": [
                                                            "on",
                                                            "off",
                                                            "var_based"
                                                          ]
                                                        },
                                                        "var": {
                                                          "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                          "type": [
                                                            "number",
                                                            "string"
                                                          ]
                                                        }
                                                      }
                                                    },
                                                    "spanAttributes": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "name": {
                                                            "description": "name of attribute",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "value": {
                                                            "description": "value of attribute, can contain variables",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          }
                                                        }
                                                      }
                                                    },
                                                    "spanName": {
                                                      "description": "Specify name of span",
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "enableSocketsTracing": {
                                                      "description": "Enable or disable socket tracing, by default enabled",
                                                      "type": "boolean"
                                                    }
                                                  }
                                                },
                                                "params": {
                                                  "description": "Specifies extra parameters for the actions.",
                                                  "type": "object",
                                                  "additionalProperties": true
                                                },
                                                "requiredChildOneOf": {
                                                  "description": "Specifies unverifed action check",
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "decision": {
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ],
                                                      "enum": [
                                                        "BLOCK",
                                                        "WARN"
                                                      ]
                                                    },
                                                    "onlyCheckers": {
                                                      "type": "boolean"
                                                    },
                                                    "include": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ]
                                                      }
                                                    },
                                                    "exclude": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "string"
                                                      }
                                                    }
                                                  },
                                                  "required": [
                                                    "decision"
                                                  ],
                                                  "allOf": [
                                                    {
                                                      "if": {
                                                        "type": "object",
                                                        "required": [
                                                          "exclude"
                                                        ],
                                                        "properties": {
                                                          "exclude": {}
                                                        }
                                                      },
                                                      "then": {
                                                        "not": {
                                                          "required": [
                                                            "include"
                                                          ]
                                                        }
                                                      }
                                                    },
                                                    {
                                                      "if": {
                                                        "type": "object",
                                                        "required": [
                                                          "include"
                                                        ],
                                                        "properties": {
                                                          "include": {}
                                                        }
                                                      },
                                                      "then": {
                                                        "not": {
                                                          "required": [
                                                            "exclude"
                                                          ]
                                                        }
                                                      }
                                                    }
                                                  ]
                                                },
                                                "actions": {
                                                  "description": "Specifies a list of actions.",
                                                  "type": "array",
                                                  "items": {
                                                    "type": "object",
                                                    "additionalProperties": false,
                                                    "properties": {
                                                      "action": {
                                                        "description": "Specifies an action to perform",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ],
                                                        "enum": [
                                                          "ASN1ContentExtractor",
                                                          "Base64Decode",
                                                          "ConditionChecker",
                                                          "CheckDataSize",
                                                          "CheckMimeType",
                                                          "JsonPathExtract",
                                                          "JsonPathExtractToVars",
                                                          "JsonValidation",
                                                          "XsdValidation",
                                                          "PostFormDataToFlateJson",
                                                          "MultipartExtract",
                                                          "SetMessageFromVar",
                                                          "SetVarFromMessage",
                                                          "JwsToJson",
                                                          "XPathExtract",
                                                          "XPathExtractToVars",
                                                          "SharedMapDeleter",
                                                          "SharedMapRemover",
                                                          "SharedMapSetter",
                                                          "SharedMapGetter",
                                                          "RandomNumberToVar",
                                                          "VarsToSharedMap",
                                                          "SharedMapToVars",
                                                          "AntivirusFileChecker",
                                                          "MtomExtractor",
                                                          "JsonTransformer",
                                                          "SetVar",
                                                          "GraphQLRequestValidation",
                                                          "ProtobufValidation",
                                                          "OpenApiValidation",
                                                          "DelimiterSplitter",
                                                          "VarsToFile",
                                                          "FileToVars",
                                                          "WsdlValidation",
                                                          "HttpFilter",
                                                          "ProtobufToJson",
                                                          "FilterMds",
                                                          "OcspSignValidator",
                                                          "OcspToJson",
                                                          "ASN1ToJson",
                                                          "XmlTransformer",
                                                          "UrlEncode",
                                                          "UrlDecodeUni",
                                                          "UrlDecode",
                                                          "HexDecode",
                                                          "HexEncode",
                                                          "ToLowerCase",
                                                          "ToUpperCase",
                                                          "Utf8ToUnicode",
                                                          "Trim",
                                                          "ICAPFileChecker",
                                                          "MessageToFile",
                                                          "MultipartFormGenerateFromVar",
                                                          "HttpSender",
                                                          "MessageAccumulator",
                                                          "MessageFromAccumulator",
                                                          "MessageFromPattern",
                                                          "MultipartFormGenerateFromMessage",
                                                          "JsonPatchMessage",
                                                          "JsonPatchVar",
                                                          "DigestFromMessage",
                                                          "Base64Encode",
                                                          "HMac",
                                                          "FileToMessage",
                                                          "JwtVerifier",
                                                          "CharsetChecker",
                                                          "LdapSearch",
                                                          "UnicodeDecode",
                                                          "MessageMapper",
                                                          "SimpleRateLimiter",
                                                          "EventSourceConverter",
                                                          "LazySessionTimeChecker",
                                                          "CalculateMessageProperties"
                                                        ]
                                                      },
                                                      "id": {
                                                        "description": "An identificator of action",
                                                        "type": [
                                                          "number",
                                                          "string"
                                                        ]
                                                      },
                                                      "conditions": {
                                                        "description": "Specifies the conditions for performina an action.",
                                                        "type": "array",
                                                        "items": {
                                                          "type": "object",
                                                          "additionalProperties": false,
                                                          "properties": {
                                                            "var": {
                                                              "description": "Specifies a variable to check.",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ]
                                                            },
                                                            "operator": {
                                                              "description": "Specifies an operator.",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ],
                                                              "enum": [
                                                                "=",
                                                                "!=",
                                                                "<=",
                                                                ">=",
                                                                ">",
                                                                "<",
                                                                "in",
                                                                "not_in",
                                                                "~",
                                                                "~*",
                                                                "!~",
                                                                "!~*",
                                                                "ip_range",
                                                                "!ip_range",
                                                                "dn_mask",
                                                                "!dn_mask"
                                                              ]
                                                            },
                                                            "val": {
                                                              "description": "Specifies a value to check.",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ]
                                                            }
                                                          },
                                                          "required": [
                                                            "var",
                                                            "operator",
                                                            "val"
                                                          ]
                                                        }
                                                      },
                                                      "trace_config": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "enableAllActions": {
                                                            "description": "enable tracing of all actions in chains",
                                                            "type": "boolean"
                                                          },
                                                          "enableAllChains": {
                                                            "description": "enable tracing of all actions in child chains",
                                                            "type": "boolean"
                                                          },
                                                          "mode": {
                                                            "description": "Enable or disable tracing at this level.",
                                                            "type": "object",
                                                            "additionalProperties": false,
                                                            "properties": {
                                                              "enabled": {
                                                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                "type": [
                                                                  "number",
                                                                  "string"
                                                                ],
                                                                "enum": [
                                                                  "on",
                                                                  "off",
                                                                  "var_based"
                                                                ]
                                                              },
                                                              "var": {
                                                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                "type": [
                                                                  "number",
                                                                  "string"
                                                                ]
                                                              }
                                                            }
                                                          },
                                                          "spanAttributes": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "name": {
                                                                  "description": "name of attribute",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "value": {
                                                                  "description": "value of attribute, can contain variables",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                }
                                                              }
                                                            }
                                                          },
                                                          "spanName": {
                                                            "description": "Specify name of span",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "enableSocketsTracing": {
                                                            "description": "Enable or disable socket tracing, by default enabled",
                                                            "type": "boolean"
                                                          }
                                                        }
                                                      },
                                                      "params": {
                                                        "description": "Specifies extra parameters for the actions.",
                                                        "type": "object",
                                                        "additionalProperties": true
                                                      },
                                                      "requiredChildOneOf": {
                                                        "description": "Specifies unverifed action check",
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "decision": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ],
                                                            "enum": [
                                                              "BLOCK",
                                                              "WARN"
                                                            ]
                                                          },
                                                          "onlyCheckers": {
                                                            "type": "boolean"
                                                          },
                                                          "include": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ]
                                                            }
                                                          },
                                                          "exclude": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "string"
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "decision"
                                                        ],
                                                        "allOf": [
                                                          {
                                                            "if": {
                                                              "type": "object",
                                                              "required": [
                                                                "exclude"
                                                              ],
                                                              "properties": {
                                                                "exclude": {}
                                                              }
                                                            },
                                                            "then": {
                                                              "not": {
                                                                "required": [
                                                                  "include"
                                                                ]
                                                              }
                                                            }
                                                          },
                                                          {
                                                            "if": {
                                                              "type": "object",
                                                              "required": [
                                                                "include"
                                                              ],
                                                              "properties": {
                                                                "include": {}
                                                              }
                                                            },
                                                            "then": {
                                                              "not": {
                                                                "required": [
                                                                  "exclude"
                                                                ]
                                                              }
                                                            }
                                                          }
                                                        ]
                                                      },
                                                      "actions": {
                                                        "description": "Specifies a list of actions.",
                                                        "type": "array",
                                                        "items": {
                                                          "type": "object",
                                                          "additionalProperties": false,
                                                          "properties": {
                                                            "action": {
                                                              "description": "Specifies an action to perform",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ],
                                                              "enum": [
                                                                "ASN1ContentExtractor",
                                                                "Base64Decode",
                                                                "ConditionChecker",
                                                                "CheckDataSize",
                                                                "CheckMimeType",
                                                                "JsonPathExtract",
                                                                "JsonPathExtractToVars",
                                                                "JsonValidation",
                                                                "XsdValidation",
                                                                "PostFormDataToFlateJson",
                                                                "MultipartExtract",
                                                                "SetMessageFromVar",
                                                                "SetVarFromMessage",
                                                                "JwsToJson",
                                                                "XPathExtract",
                                                                "XPathExtractToVars",
                                                                "SharedMapDeleter",
                                                                "SharedMapRemover",
                                                                "SharedMapSetter",
                                                                "SharedMapGetter",
                                                                "RandomNumberToVar",
                                                                "VarsToSharedMap",
                                                                "SharedMapToVars",
                                                                "AntivirusFileChecker",
                                                                "MtomExtractor",
                                                                "JsonTransformer",
                                                                "SetVar",
                                                                "GraphQLRequestValidation",
                                                                "ProtobufValidation",
                                                                "OpenApiValidation",
                                                                "DelimiterSplitter",
                                                                "VarsToFile",
                                                                "FileToVars",
                                                                "WsdlValidation",
                                                                "HttpFilter",
                                                                "ProtobufToJson",
                                                                "FilterMds",
                                                                "OcspSignValidator",
                                                                "OcspToJson",
                                                                "ASN1ToJson",
                                                                "XmlTransformer",
                                                                "UrlEncode",
                                                                "UrlDecodeUni",
                                                                "UrlDecode",
                                                                "HexDecode",
                                                                "HexEncode",
                                                                "ToLowerCase",
                                                                "ToUpperCase",
                                                                "Utf8ToUnicode",
                                                                "Trim",
                                                                "ICAPFileChecker",
                                                                "MessageToFile",
                                                                "MultipartFormGenerateFromVar",
                                                                "HttpSender",
                                                                "MessageAccumulator",
                                                                "MessageFromAccumulator",
                                                                "MessageFromPattern",
                                                                "MultipartFormGenerateFromMessage",
                                                                "JsonPatchMessage",
                                                                "JsonPatchVar",
                                                                "DigestFromMessage",
                                                                "Base64Encode",
                                                                "HMac",
                                                                "FileToMessage",
                                                                "JwtVerifier",
                                                                "CharsetChecker",
                                                                "LdapSearch",
                                                                "UnicodeDecode",
                                                                "MessageMapper",
                                                                "SimpleRateLimiter",
                                                                "EventSourceConverter",
                                                                "LazySessionTimeChecker",
                                                                "CalculateMessageProperties"
                                                              ]
                                                            },
                                                            "id": {
                                                              "description": "An identificator of action",
                                                              "type": [
                                                                "number",
                                                                "string"
                                                              ]
                                                            },
                                                            "conditions": {
                                                              "description": "Specifies the conditions for performina an action.",
                                                              "type": "array",
                                                              "items": {
                                                                "type": "object",
                                                                "additionalProperties": false,
                                                                "properties": {
                                                                  "var": {
                                                                    "description": "Specifies a variable to check.",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ]
                                                                  },
                                                                  "operator": {
                                                                    "description": "Specifies an operator.",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ],
                                                                    "enum": [
                                                                      "=",
                                                                      "!=",
                                                                      "<=",
                                                                      ">=",
                                                                      ">",
                                                                      "<",
                                                                      "in",
                                                                      "not_in",
                                                                      "~",
                                                                      "~*",
                                                                      "!~",
                                                                      "!~*",
                                                                      "ip_range",
                                                                      "!ip_range",
                                                                      "dn_mask",
                                                                      "!dn_mask"
                                                                    ]
                                                                  },
                                                                  "val": {
                                                                    "description": "Specifies a value to check.",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ]
                                                                  }
                                                                },
                                                                "required": [
                                                                  "var",
                                                                  "operator",
                                                                  "val"
                                                                ]
                                                              }
                                                            },
                                                            "trace_config": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "enableAllActions": {
                                                                  "description": "enable tracing of all actions in chains",
                                                                  "type": "boolean"
                                                                },
                                                                "enableAllChains": {
                                                                  "description": "enable tracing of all actions in child chains",
                                                                  "type": "boolean"
                                                                },
                                                                "mode": {
                                                                  "description": "Enable or disable tracing at this level.",
                                                                  "type": "object",
                                                                  "additionalProperties": false,
                                                                  "properties": {
                                                                    "enabled": {
                                                                      "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                      "type": [
                                                                        "number",
                                                                        "string"
                                                                      ],
                                                                      "enum": [
                                                                        "on",
                                                                        "off",
                                                                        "var_based"
                                                                      ]
                                                                    },
                                                                    "var": {
                                                                      "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                      "type": [
                                                                        "number",
                                                                        "string"
                                                                      ]
                                                                    }
                                                                  }
                                                                },
                                                                "spanAttributes": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "name": {
                                                                        "description": "name of attribute",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "value": {
                                                                        "description": "value of attribute, can contain variables",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      }
                                                                    }
                                                                  }
                                                                },
                                                                "spanName": {
                                                                  "description": "Specify name of span",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "enableSocketsTracing": {
                                                                  "description": "Enable or disable socket tracing, by default enabled",
                                                                  "type": "boolean"
                                                                }
                                                              }
                                                            },
                                                            "params": {
                                                              "description": "Specifies extra parameters for the actions.",
                                                              "type": "object",
                                                              "additionalProperties": true
                                                            },
                                                            "requiredChildOneOf": {
                                                              "description": "Specifies unverifed action check",
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "decision": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ],
                                                                  "enum": [
                                                                    "BLOCK",
                                                                    "WARN"
                                                                  ]
                                                                },
                                                                "onlyCheckers": {
                                                                  "type": "boolean"
                                                                },
                                                                "include": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ]
                                                                  }
                                                                },
                                                                "exclude": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "string"
                                                                  }
                                                                }
                                                              },
                                                              "required": [
                                                                "decision"
                                                              ],
                                                              "allOf": [
                                                                {
                                                                  "if": {
                                                                    "type": "object",
                                                                    "required": [
                                                                      "exclude"
                                                                    ],
                                                                    "properties": {
                                                                      "exclude": {}
                                                                    }
                                                                  },
                                                                  "then": {
                                                                    "not": {
                                                                      "required": [
                                                                        "include"
                                                                      ]
                                                                    }
                                                                  }
                                                                },
                                                                {
                                                                  "if": {
                                                                    "type": "object",
                                                                    "required": [
                                                                      "include"
                                                                    ],
                                                                    "properties": {
                                                                      "include": {}
                                                                    }
                                                                  },
                                                                  "then": {
                                                                    "not": {
                                                                      "required": [
                                                                        "exclude"
                                                                      ]
                                                                    }
                                                                  }
                                                                }
                                                              ]
                                                            },
                                                            "actions": {
                                                              "description": "Specifies a list of actions.",
                                                              "type": "array",
                                                              "items": {
                                                                "type": "object",
                                                                "additionalProperties": false,
                                                                "properties": {
                                                                  "action": {
                                                                    "description": "Specifies an action to perform",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ],
                                                                    "enum": [
                                                                      "ASN1ContentExtractor",
                                                                      "Base64Decode",
                                                                      "ConditionChecker",
                                                                      "CheckDataSize",
                                                                      "CheckMimeType",
                                                                      "JsonPathExtract",
                                                                      "JsonPathExtractToVars",
                                                                      "JsonValidation",
                                                                      "XsdValidation",
                                                                      "PostFormDataToFlateJson",
                                                                      "MultipartExtract",
                                                                      "SetMessageFromVar",
                                                                      "SetVarFromMessage",
                                                                      "JwsToJson",
                                                                      "XPathExtract",
                                                                      "XPathExtractToVars",
                                                                      "SharedMapDeleter",
                                                                      "SharedMapRemover",
                                                                      "SharedMapSetter",
                                                                      "SharedMapGetter",
                                                                      "RandomNumberToVar",
                                                                      "VarsToSharedMap",
                                                                      "SharedMapToVars",
                                                                      "AntivirusFileChecker",
                                                                      "MtomExtractor",
                                                                      "JsonTransformer",
                                                                      "SetVar",
                                                                      "GraphQLRequestValidation",
                                                                      "ProtobufValidation",
                                                                      "OpenApiValidation",
                                                                      "DelimiterSplitter",
                                                                      "VarsToFile",
                                                                      "FileToVars",
                                                                      "WsdlValidation",
                                                                      "HttpFilter",
                                                                      "ProtobufToJson",
                                                                      "FilterMds",
                                                                      "OcspSignValidator",
                                                                      "OcspToJson",
                                                                      "ASN1ToJson",
                                                                      "XmlTransformer",
                                                                      "UrlEncode",
                                                                      "UrlDecodeUni",
                                                                      "UrlDecode",
                                                                      "HexDecode",
                                                                      "HexEncode",
                                                                      "ToLowerCase",
                                                                      "ToUpperCase",
                                                                      "Utf8ToUnicode",
                                                                      "Trim",
                                                                      "ICAPFileChecker",
                                                                      "MessageToFile",
                                                                      "MultipartFormGenerateFromVar",
                                                                      "HttpSender",
                                                                      "MessageAccumulator",
                                                                      "MessageFromAccumulator",
                                                                      "MessageFromPattern",
                                                                      "MultipartFormGenerateFromMessage",
                                                                      "JsonPatchMessage",
                                                                      "JsonPatchVar",
                                                                      "DigestFromMessage",
                                                                      "Base64Encode",
                                                                      "HMac",
                                                                      "FileToMessage",
                                                                      "JwtVerifier",
                                                                      "CharsetChecker",
                                                                      "LdapSearch",
                                                                      "UnicodeDecode",
                                                                      "MessageMapper",
                                                                      "SimpleRateLimiter",
                                                                      "EventSourceConverter",
                                                                      "LazySessionTimeChecker",
                                                                      "CalculateMessageProperties"
                                                                    ]
                                                                  },
                                                                  "id": {
                                                                    "description": "An identificator of action",
                                                                    "type": [
                                                                      "number",
                                                                      "string"
                                                                    ]
                                                                  },
                                                                  "conditions": {
                                                                    "description": "Specifies the conditions for performina an action.",
                                                                    "type": "array",
                                                                    "items": {
                                                                      "type": "object",
                                                                      "additionalProperties": false,
                                                                      "properties": {
                                                                        "var": {
                                                                          "description": "Specifies a variable to check.",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ]
                                                                        },
                                                                        "operator": {
                                                                          "description": "Specifies an operator.",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ],
                                                                          "enum": [
                                                                            "=",
                                                                            "!=",
                                                                            "<=",
                                                                            ">=",
                                                                            ">",
                                                                            "<",
                                                                            "in",
                                                                            "not_in",
                                                                            "~",
                                                                            "~*",
                                                                            "!~",
                                                                            "!~*",
                                                                            "ip_range",
                                                                            "!ip_range",
                                                                            "dn_mask",
                                                                            "!dn_mask"
                                                                          ]
                                                                        },
                                                                        "val": {
                                                                          "description": "Specifies a value to check.",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "required": [
                                                                        "var",
                                                                        "operator",
                                                                        "val"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "trace_config": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "enableAllActions": {
                                                                        "description": "enable tracing of all actions in chains",
                                                                        "type": "boolean"
                                                                      },
                                                                      "enableAllChains": {
                                                                        "description": "enable tracing of all actions in child chains",
                                                                        "type": "boolean"
                                                                      },
                                                                      "mode": {
                                                                        "description": "Enable or disable tracing at this level.",
                                                                        "type": "object",
                                                                        "additionalProperties": false,
                                                                        "properties": {
                                                                          "enabled": {
                                                                            "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                            "type": [
                                                                              "number",
                                                                              "string"
                                                                            ],
                                                                            "enum": [
                                                                              "on",
                                                                              "off",
                                                                              "var_based"
                                                                            ]
                                                                          },
                                                                          "var": {
                                                                            "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                            "type": [
                                                                              "number",
                                                                              "string"
                                                                            ]
                                                                          }
                                                                        }
                                                                      },
                                                                      "spanAttributes": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "name": {
                                                                              "description": "name of attribute",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "value": {
                                                                              "description": "value of attribute, can contain variables",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            }
                                                                          }
                                                                        }
                                                                      },
                                                                      "spanName": {
                                                                        "description": "Specify name of span",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "enableSocketsTracing": {
                                                                        "description": "Enable or disable socket tracing, by default enabled",
                                                                        "type": "boolean"
                                                                      }
                                                                    }
                                                                  },
                                                                  "params": {
                                                                    "description": "Specifies extra parameters for the actions.",
                                                                    "type": "object",
                                                                    "additionalProperties": true
                                                                  },
                                                                  "requiredChildOneOf": {
                                                                    "description": "Specifies unverifed action check",
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "decision": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ],
                                                                        "enum": [
                                                                          "BLOCK",
                                                                          "WARN"
                                                                        ]
                                                                      },
                                                                      "onlyCheckers": {
                                                                        "type": "boolean"
                                                                      },
                                                                      "include": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "exclude": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "string"
                                                                        }
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "decision"
                                                                    ],
                                                                    "allOf": [
                                                                      {
                                                                        "if": {
                                                                          "type": "object",
                                                                          "required": [
                                                                            "exclude"
                                                                          ],
                                                                          "properties": {
                                                                            "exclude": {}
                                                                          }
                                                                        },
                                                                        "then": {
                                                                          "not": {
                                                                            "required": [
                                                                              "include"
                                                                            ]
                                                                          }
                                                                        }
                                                                      },
                                                                      {
                                                                        "if": {
                                                                          "type": "object",
                                                                          "required": [
                                                                            "include"
                                                                          ],
                                                                          "properties": {
                                                                            "include": {}
                                                                          }
                                                                        },
                                                                        "then": {
                                                                          "not": {
                                                                            "required": [
                                                                              "exclude"
                                                                            ]
                                                                          }
                                                                        }
                                                                      }
                                                                    ]
                                                                  },
                                                                  "actions": {
                                                                    "description": "Specifies a list of actions.",
                                                                    "type": "array",
                                                                    "items": {
                                                                      "type": "object",
                                                                      "additionalProperties": false,
                                                                      "properties": {
                                                                        "action": {
                                                                          "description": "Specifies an action to perform",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ],
                                                                          "enum": [
                                                                            "ASN1ContentExtractor",
                                                                            "Base64Decode",
                                                                            "ConditionChecker",
                                                                            "CheckDataSize",
                                                                            "CheckMimeType",
                                                                            "JsonPathExtract",
                                                                            "JsonPathExtractToVars",
                                                                            "JsonValidation",
                                                                            "XsdValidation",
                                                                            "PostFormDataToFlateJson",
                                                                            "MultipartExtract",
                                                                            "SetMessageFromVar",
                                                                            "SetVarFromMessage",
                                                                            "JwsToJson",
                                                                            "XPathExtract",
                                                                            "XPathExtractToVars",
                                                                            "SharedMapDeleter",
                                                                            "SharedMapRemover",
                                                                            "SharedMapSetter",
                                                                            "SharedMapGetter",
                                                                            "RandomNumberToVar",
                                                                            "VarsToSharedMap",
                                                                            "SharedMapToVars",
                                                                            "AntivirusFileChecker",
                                                                            "MtomExtractor",
                                                                            "JsonTransformer",
                                                                            "SetVar",
                                                                            "GraphQLRequestValidation",
                                                                            "ProtobufValidation",
                                                                            "OpenApiValidation",
                                                                            "DelimiterSplitter",
                                                                            "VarsToFile",
                                                                            "FileToVars",
                                                                            "WsdlValidation",
                                                                            "HttpFilter",
                                                                            "ProtobufToJson",
                                                                            "FilterMds",
                                                                            "OcspSignValidator",
                                                                            "OcspToJson",
                                                                            "ASN1ToJson",
                                                                            "XmlTransformer",
                                                                            "UrlEncode",
                                                                            "UrlDecodeUni",
                                                                            "UrlDecode",
                                                                            "HexDecode",
                                                                            "HexEncode",
                                                                            "ToLowerCase",
                                                                            "ToUpperCase",
                                                                            "Utf8ToUnicode",
                                                                            "Trim",
                                                                            "ICAPFileChecker",
                                                                            "MessageToFile",
                                                                            "MultipartFormGenerateFromVar",
                                                                            "HttpSender",
                                                                            "MessageAccumulator",
                                                                            "MessageFromAccumulator",
                                                                            "MessageFromPattern",
                                                                            "MultipartFormGenerateFromMessage",
                                                                            "JsonPatchMessage",
                                                                            "JsonPatchVar",
                                                                            "DigestFromMessage",
                                                                            "Base64Encode",
                                                                            "HMac",
                                                                            "FileToMessage",
                                                                            "JwtVerifier",
                                                                            "CharsetChecker",
                                                                            "LdapSearch",
                                                                            "UnicodeDecode",
                                                                            "MessageMapper",
                                                                            "SimpleRateLimiter",
                                                                            "EventSourceConverter",
                                                                            "LazySessionTimeChecker",
                                                                            "CalculateMessageProperties"
                                                                          ]
                                                                        },
                                                                        "id": {
                                                                          "description": "An identificator of action",
                                                                          "type": [
                                                                            "number",
                                                                            "string"
                                                                          ]
                                                                        },
                                                                        "conditions": {
                                                                          "description": "Specifies the conditions for performina an action.",
                                                                          "type": "array",
                                                                          "items": {
                                                                            "type": "object",
                                                                            "additionalProperties": false,
                                                                            "properties": {
                                                                              "var": {
                                                                                "description": "Specifies a variable to check.",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ]
                                                                              },
                                                                              "operator": {
                                                                                "description": "Specifies an operator.",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ],
                                                                                "enum": [
                                                                                  "=",
                                                                                  "!=",
                                                                                  "<=",
                                                                                  ">=",
                                                                                  ">",
                                                                                  "<",
                                                                                  "in",
                                                                                  "not_in",
                                                                                  "~",
                                                                                  "~*",
                                                                                  "!~",
                                                                                  "!~*",
                                                                                  "ip_range",
                                                                                  "!ip_range",
                                                                                  "dn_mask",
                                                                                  "!dn_mask"
                                                                                ]
                                                                              },
                                                                              "val": {
                                                                                "description": "Specifies a value to check.",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ]
                                                                              }
                                                                            },
                                                                            "required": [
                                                                              "var",
                                                                              "operator",
                                                                              "val"
                                                                            ]
                                                                          }
                                                                        },
                                                                        "trace_config": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "enableAllActions": {
                                                                              "description": "enable tracing of all actions in chains",
                                                                              "type": "boolean"
                                                                            },
                                                                            "enableAllChains": {
                                                                              "description": "enable tracing of all actions in child chains",
                                                                              "type": "boolean"
                                                                            },
                                                                            "mode": {
                                                                              "description": "Enable or disable tracing at this level.",
                                                                              "type": "object",
                                                                              "additionalProperties": false,
                                                                              "properties": {
                                                                                "enabled": {
                                                                                  "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                  "type": [
                                                                                    "number",
                                                                                    "string"
                                                                                  ],
                                                                                  "enum": [
                                                                                    "on",
                                                                                    "off",
                                                                                    "var_based"
                                                                                  ]
                                                                                },
                                                                                "var": {
                                                                                  "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                  "type": [
                                                                                    "number",
                                                                                    "string"
                                                                                  ]
                                                                                }
                                                                              }
                                                                            },
                                                                            "spanAttributes": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "name": {
                                                                                    "description": "name of attribute",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "value": {
                                                                                    "description": "value of attribute, can contain variables",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  }
                                                                                }
                                                                              }
                                                                            },
                                                                            "spanName": {
                                                                              "description": "Specify name of span",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "enableSocketsTracing": {
                                                                              "description": "Enable or disable socket tracing, by default enabled",
                                                                              "type": "boolean"
                                                                            }
                                                                          }
                                                                        },
                                                                        "params": {
                                                                          "description": "Specifies extra parameters for the actions.",
                                                                          "type": "object",
                                                                          "additionalProperties": true
                                                                        },
                                                                        "requiredChildOneOf": {
                                                                          "description": "Specifies unverifed action check",
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "decision": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ],
                                                                              "enum": [
                                                                                "BLOCK",
                                                                                "WARN"
                                                                              ]
                                                                            },
                                                                            "onlyCheckers": {
                                                                              "type": "boolean"
                                                                            },
                                                                            "include": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ]
                                                                              }
                                                                            },
                                                                            "exclude": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "string"
                                                                              }
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "decision"
                                                                          ],
                                                                          "allOf": [
                                                                            {
                                                                              "if": {
                                                                                "type": "object",
                                                                                "required": [
                                                                                  "exclude"
                                                                                ],
                                                                                "properties": {
                                                                                  "exclude": {}
                                                                                }
                                                                              },
                                                                              "then": {
                                                                                "not": {
                                                                                  "required": [
                                                                                    "include"
                                                                                  ]
                                                                                }
                                                                              }
                                                                            },
                                                                            {
                                                                              "if": {
                                                                                "type": "object",
                                                                                "required": [
                                                                                  "include"
                                                                                ],
                                                                                "properties": {
                                                                                  "include": {}
                                                                                }
                                                                              },
                                                                              "then": {
                                                                                "not": {
                                                                                  "required": [
                                                                                    "exclude"
                                                                                  ]
                                                                                }
                                                                              }
                                                                            }
                                                                          ]
                                                                        },
                                                                        "actions": {
                                                                          "description": "Specifies a list of actions.",
                                                                          "type": "array",
                                                                          "items": {
                                                                            "type": "object",
                                                                            "additionalProperties": false,
                                                                            "properties": {
                                                                              "action": {
                                                                                "description": "Specifies an action to perform",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ],
                                                                                "enum": [
                                                                                  "ASN1ContentExtractor",
                                                                                  "Base64Decode",
                                                                                  "ConditionChecker",
                                                                                  "CheckDataSize",
                                                                                  "CheckMimeType",
                                                                                  "JsonPathExtract",
                                                                                  "JsonPathExtractToVars",
                                                                                  "JsonValidation",
                                                                                  "XsdValidation",
                                                                                  "PostFormDataToFlateJson",
                                                                                  "MultipartExtract",
                                                                                  "SetMessageFromVar",
                                                                                  "SetVarFromMessage",
                                                                                  "JwsToJson",
                                                                                  "XPathExtract",
                                                                                  "XPathExtractToVars",
                                                                                  "SharedMapDeleter",
                                                                                  "SharedMapRemover",
                                                                                  "SharedMapSetter",
                                                                                  "SharedMapGetter",
                                                                                  "RandomNumberToVar",
                                                                                  "VarsToSharedMap",
                                                                                  "SharedMapToVars",
                                                                                  "AntivirusFileChecker",
                                                                                  "MtomExtractor",
                                                                                  "JsonTransformer",
                                                                                  "SetVar",
                                                                                  "GraphQLRequestValidation",
                                                                                  "ProtobufValidation",
                                                                                  "OpenApiValidation",
                                                                                  "DelimiterSplitter",
                                                                                  "VarsToFile",
                                                                                  "FileToVars",
                                                                                  "WsdlValidation",
                                                                                  "HttpFilter",
                                                                                  "ProtobufToJson",
                                                                                  "FilterMds",
                                                                                  "OcspSignValidator",
                                                                                  "OcspToJson",
                                                                                  "ASN1ToJson",
                                                                                  "XmlTransformer",
                                                                                  "UrlEncode",
                                                                                  "UrlDecodeUni",
                                                                                  "UrlDecode",
                                                                                  "HexDecode",
                                                                                  "HexEncode",
                                                                                  "ToLowerCase",
                                                                                  "ToUpperCase",
                                                                                  "Utf8ToUnicode",
                                                                                  "Trim",
                                                                                  "ICAPFileChecker",
                                                                                  "MessageToFile",
                                                                                  "MultipartFormGenerateFromVar",
                                                                                  "HttpSender",
                                                                                  "MessageAccumulator",
                                                                                  "MessageFromAccumulator",
                                                                                  "MessageFromPattern",
                                                                                  "MultipartFormGenerateFromMessage",
                                                                                  "JsonPatchMessage",
                                                                                  "JsonPatchVar",
                                                                                  "DigestFromMessage",
                                                                                  "Base64Encode",
                                                                                  "HMac",
                                                                                  "FileToMessage",
                                                                                  "JwtVerifier",
                                                                                  "CharsetChecker",
                                                                                  "LdapSearch",
                                                                                  "UnicodeDecode",
                                                                                  "MessageMapper",
                                                                                  "SimpleRateLimiter",
                                                                                  "EventSourceConverter",
                                                                                  "LazySessionTimeChecker",
                                                                                  "CalculateMessageProperties"
                                                                                ]
                                                                              },
                                                                              "id": {
                                                                                "description": "An identificator of action",
                                                                                "type": [
                                                                                  "number",
                                                                                  "string"
                                                                                ]
                                                                              },
                                                                              "conditions": {
                                                                                "description": "Specifies the conditions for performina an action.",
                                                                                "type": "array",
                                                                                "items": {
                                                                                  "type": "object",
                                                                                  "additionalProperties": false,
                                                                                  "properties": {
                                                                                    "var": {
                                                                                      "description": "Specifies a variable to check.",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ]
                                                                                    },
                                                                                    "operator": {
                                                                                      "description": "Specifies an operator.",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ],
                                                                                      "enum": [
                                                                                        "=",
                                                                                        "!=",
                                                                                        "<=",
                                                                                        ">=",
                                                                                        ">",
                                                                                        "<",
                                                                                        "in",
                                                                                        "not_in",
                                                                                        "~",
                                                                                        "~*",
                                                                                        "!~",
                                                                                        "!~*",
                                                                                        "ip_range",
                                                                                        "!ip_range",
                                                                                        "dn_mask",
                                                                                        "!dn_mask"
                                                                                      ]
                                                                                    },
                                                                                    "val": {
                                                                                      "description": "Specifies a value to check.",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ]
                                                                                    }
                                                                                  },
                                                                                  "required": [
                                                                                    "var",
                                                                                    "operator",
                                                                                    "val"
                                                                                  ]
                                                                                }
                                                                              },
                                                                              "trace_config": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "enableAllActions": {
                                                                                    "description": "enable tracing of all actions in chains",
                                                                                    "type": "boolean"
                                                                                  },
                                                                                  "enableAllChains": {
                                                                                    "description": "enable tracing of all actions in child chains",
                                                                                    "type": "boolean"
                                                                                  },
                                                                                  "mode": {
                                                                                    "description": "Enable or disable tracing at this level.",
                                                                                    "type": "object",
                                                                                    "additionalProperties": false,
                                                                                    "properties": {
                                                                                      "enabled": {
                                                                                        "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                        "type": [
                                                                                          "number",
                                                                                          "string"
                                                                                        ],
                                                                                        "enum": [
                                                                                          "on",
                                                                                          "off",
                                                                                          "var_based"
                                                                                        ]
                                                                                      },
                                                                                      "var": {
                                                                                        "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                        "type": [
                                                                                          "number",
                                                                                          "string"
                                                                                        ]
                                                                                      }
                                                                                    }
                                                                                  },
                                                                                  "spanAttributes": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "name": {
                                                                                          "description": "name of attribute",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "value": {
                                                                                          "description": "value of attribute, can contain variables",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        }
                                                                                      }
                                                                                    }
                                                                                  },
                                                                                  "spanName": {
                                                                                    "description": "Specify name of span",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "enableSocketsTracing": {
                                                                                    "description": "Enable or disable socket tracing, by default enabled",
                                                                                    "type": "boolean"
                                                                                  }
                                                                                }
                                                                              },
                                                                              "params": {
                                                                                "description": "Specifies extra parameters for the actions.",
                                                                                "type": "object",
                                                                                "additionalProperties": true
                                                                              },
                                                                              "requiredChildOneOf": {
                                                                                "description": "Specifies unverifed action check",
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "decision": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ],
                                                                                    "enum": [
                                                                                      "BLOCK",
                                                                                      "WARN"
                                                                                    ]
                                                                                  },
                                                                                  "onlyCheckers": {
                                                                                    "type": "boolean"
                                                                                  },
                                                                                  "include": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ]
                                                                                    }
                                                                                  },
                                                                                  "exclude": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "string"
                                                                                    }
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "decision"
                                                                                ],
                                                                                "allOf": [
                                                                                  {
                                                                                    "if": {
                                                                                      "type": "object",
                                                                                      "required": [
                                                                                        "exclude"
                                                                                      ],
                                                                                      "properties": {
                                                                                        "exclude": {}
                                                                                      }
                                                                                    },
                                                                                    "then": {
                                                                                      "not": {
                                                                                        "required": [
                                                                                          "include"
                                                                                        ]
                                                                                      }
                                                                                    }
                                                                                  },
                                                                                  {
                                                                                    "if": {
                                                                                      "type": "object",
                                                                                      "required": [
                                                                                        "include"
                                                                                      ],
                                                                                      "properties": {
                                                                                        "include": {}
                                                                                      }
                                                                                    },
                                                                                    "then": {
                                                                                      "not": {
                                                                                        "required": [
                                                                                          "exclude"
                                                                                        ]
                                                                                      }
                                                                                    }
                                                                                  }
                                                                                ]
                                                                              },
                                                                              "actions": {
                                                                                "description": "Specifies a list of actions.",
                                                                                "type": "array",
                                                                                "items": {
                                                                                  "type": "object",
                                                                                  "additionalProperties": false,
                                                                                  "properties": {
                                                                                    "action": {
                                                                                      "description": "Specifies an action to perform",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ],
                                                                                      "enum": [
                                                                                        "ASN1ContentExtractor",
                                                                                        "Base64Decode",
                                                                                        "ConditionChecker",
                                                                                        "CheckDataSize",
                                                                                        "CheckMimeType",
                                                                                        "JsonPathExtract",
                                                                                        "JsonPathExtractToVars",
                                                                                        "JsonValidation",
                                                                                        "XsdValidation",
                                                                                        "PostFormDataToFlateJson",
                                                                                        "MultipartExtract",
                                                                                        "SetMessageFromVar",
                                                                                        "SetVarFromMessage",
                                                                                        "JwsToJson",
                                                                                        "XPathExtract",
                                                                                        "XPathExtractToVars",
                                                                                        "SharedMapDeleter",
                                                                                        "SharedMapRemover",
                                                                                        "SharedMapSetter",
                                                                                        "SharedMapGetter",
                                                                                        "RandomNumberToVar",
                                                                                        "VarsToSharedMap",
                                                                                        "SharedMapToVars",
                                                                                        "AntivirusFileChecker",
                                                                                        "MtomExtractor",
                                                                                        "JsonTransformer",
                                                                                        "SetVar",
                                                                                        "GraphQLRequestValidation",
                                                                                        "ProtobufValidation",
                                                                                        "OpenApiValidation",
                                                                                        "DelimiterSplitter",
                                                                                        "VarsToFile",
                                                                                        "FileToVars",
                                                                                        "WsdlValidation",
                                                                                        "HttpFilter",
                                                                                        "ProtobufToJson",
                                                                                        "FilterMds",
                                                                                        "OcspSignValidator",
                                                                                        "OcspToJson",
                                                                                        "ASN1ToJson",
                                                                                        "XmlTransformer",
                                                                                        "UrlEncode",
                                                                                        "UrlDecodeUni",
                                                                                        "UrlDecode",
                                                                                        "HexDecode",
                                                                                        "HexEncode",
                                                                                        "ToLowerCase",
                                                                                        "ToUpperCase",
                                                                                        "Utf8ToUnicode",
                                                                                        "Trim",
                                                                                        "ICAPFileChecker",
                                                                                        "MessageToFile",
                                                                                        "MultipartFormGenerateFromVar",
                                                                                        "HttpSender",
                                                                                        "MessageAccumulator",
                                                                                        "MessageFromAccumulator",
                                                                                        "MessageFromPattern",
                                                                                        "MultipartFormGenerateFromMessage",
                                                                                        "JsonPatchMessage",
                                                                                        "JsonPatchVar",
                                                                                        "DigestFromMessage",
                                                                                        "Base64Encode",
                                                                                        "HMac",
                                                                                        "FileToMessage",
                                                                                        "JwtVerifier",
                                                                                        "CharsetChecker",
                                                                                        "LdapSearch",
                                                                                        "UnicodeDecode",
                                                                                        "MessageMapper",
                                                                                        "SimpleRateLimiter",
                                                                                        "EventSourceConverter",
                                                                                        "LazySessionTimeChecker",
                                                                                        "CalculateMessageProperties"
                                                                                      ]
                                                                                    },
                                                                                    "id": {
                                                                                      "description": "An identificator of action",
                                                                                      "type": [
                                                                                        "number",
                                                                                        "string"
                                                                                      ]
                                                                                    },
                                                                                    "conditions": {
                                                                                      "description": "Specifies the conditions for performina an action.",
                                                                                      "type": "array",
                                                                                      "items": {
                                                                                        "type": "object",
                                                                                        "additionalProperties": false,
                                                                                        "properties": {
                                                                                          "var": {
                                                                                            "description": "Specifies a variable to check.",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ]
                                                                                          },
                                                                                          "operator": {
                                                                                            "description": "Specifies an operator.",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ],
                                                                                            "enum": [
                                                                                              "=",
                                                                                              "!=",
                                                                                              "<=",
                                                                                              ">=",
                                                                                              ">",
                                                                                              "<",
                                                                                              "in",
                                                                                              "not_in",
                                                                                              "~",
                                                                                              "~*",
                                                                                              "!~",
                                                                                              "!~*",
                                                                                              "ip_range",
                                                                                              "!ip_range",
                                                                                              "dn_mask",
                                                                                              "!dn_mask"
                                                                                            ]
                                                                                          },
                                                                                          "val": {
                                                                                            "description": "Specifies a value to check.",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ]
                                                                                          }
                                                                                        },
                                                                                        "required": [
                                                                                          "var",
                                                                                          "operator",
                                                                                          "val"
                                                                                        ]
                                                                                      }
                                                                                    },
                                                                                    "trace_config": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "enableAllActions": {
                                                                                          "description": "enable tracing of all actions in chains",
                                                                                          "type": "boolean"
                                                                                        },
                                                                                        "enableAllChains": {
                                                                                          "description": "enable tracing of all actions in child chains",
                                                                                          "type": "boolean"
                                                                                        },
                                                                                        "mode": {
                                                                                          "description": "Enable or disable tracing at this level.",
                                                                                          "type": "object",
                                                                                          "additionalProperties": false,
                                                                                          "properties": {
                                                                                            "enabled": {
                                                                                              "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                              "type": [
                                                                                                "number",
                                                                                                "string"
                                                                                              ],
                                                                                              "enum": [
                                                                                                "on",
                                                                                                "off",
                                                                                                "var_based"
                                                                                              ]
                                                                                            },
                                                                                            "var": {
                                                                                              "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                              "type": [
                                                                                                "number",
                                                                                                "string"
                                                                                              ]
                                                                                            }
                                                                                          }
                                                                                        },
                                                                                        "spanAttributes": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "name": {
                                                                                                "description": "name of attribute",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "value": {
                                                                                                "description": "value of attribute, can contain variables",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              }
                                                                                            }
                                                                                          }
                                                                                        },
                                                                                        "spanName": {
                                                                                          "description": "Specify name of span",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "enableSocketsTracing": {
                                                                                          "description": "Enable or disable socket tracing, by default enabled",
                                                                                          "type": "boolean"
                                                                                        }
                                                                                      }
                                                                                    },
                                                                                    "params": {
                                                                                      "description": "Specifies extra parameters for the actions.",
                                                                                      "type": "object",
                                                                                      "additionalProperties": true
                                                                                    },
                                                                                    "requiredChildOneOf": {
                                                                                      "description": "Specifies unverifed action check",
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "decision": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ],
                                                                                          "enum": [
                                                                                            "BLOCK",
                                                                                            "WARN"
                                                                                          ]
                                                                                        },
                                                                                        "onlyCheckers": {
                                                                                          "type": "boolean"
                                                                                        },
                                                                                        "include": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ]
                                                                                          }
                                                                                        },
                                                                                        "exclude": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "string"
                                                                                          }
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "decision"
                                                                                      ],
                                                                                      "allOf": [
                                                                                        {
                                                                                          "if": {
                                                                                            "type": "object",
                                                                                            "required": [
                                                                                              "exclude"
                                                                                            ],
                                                                                            "properties": {
                                                                                              "exclude": {}
                                                                                            }
                                                                                          },
                                                                                          "then": {
                                                                                            "not": {
                                                                                              "required": [
                                                                                                "include"
                                                                                              ]
                                                                                            }
                                                                                          }
                                                                                        },
                                                                                        {
                                                                                          "if": {
                                                                                            "type": "object",
                                                                                            "required": [
                                                                                              "include"
                                                                                            ],
                                                                                            "properties": {
                                                                                              "include": {}
                                                                                            }
                                                                                          },
                                                                                          "then": {
                                                                                            "not": {
                                                                                              "required": [
                                                                                                "exclude"
                                                                                              ]
                                                                                            }
                                                                                          }
                                                                                        }
                                                                                      ]
                                                                                    },
                                                                                    "actions": {
                                                                                      "description": "Specifies a list of actions.",
                                                                                      "type": "array",
                                                                                      "items": {
                                                                                        "type": "object",
                                                                                        "additionalProperties": false,
                                                                                        "properties": {
                                                                                          "action": {
                                                                                            "description": "Specifies an action to perform",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ],
                                                                                            "enum": [
                                                                                              "ASN1ContentExtractor",
                                                                                              "Base64Decode",
                                                                                              "ConditionChecker",
                                                                                              "CheckDataSize",
                                                                                              "CheckMimeType",
                                                                                              "JsonPathExtract",
                                                                                              "JsonPathExtractToVars",
                                                                                              "JsonValidation",
                                                                                              "XsdValidation",
                                                                                              "PostFormDataToFlateJson",
                                                                                              "MultipartExtract",
                                                                                              "SetMessageFromVar",
                                                                                              "SetVarFromMessage",
                                                                                              "JwsToJson",
                                                                                              "XPathExtract",
                                                                                              "XPathExtractToVars",
                                                                                              "SharedMapDeleter",
                                                                                              "SharedMapRemover",
                                                                                              "SharedMapSetter",
                                                                                              "SharedMapGetter",
                                                                                              "RandomNumberToVar",
                                                                                              "VarsToSharedMap",
                                                                                              "SharedMapToVars",
                                                                                              "AntivirusFileChecker",
                                                                                              "MtomExtractor",
                                                                                              "JsonTransformer",
                                                                                              "SetVar",
                                                                                              "GraphQLRequestValidation",
                                                                                              "ProtobufValidation",
                                                                                              "OpenApiValidation",
                                                                                              "DelimiterSplitter",
                                                                                              "VarsToFile",
                                                                                              "FileToVars",
                                                                                              "WsdlValidation",
                                                                                              "HttpFilter",
                                                                                              "ProtobufToJson",
                                                                                              "FilterMds",
                                                                                              "OcspSignValidator",
                                                                                              "OcspToJson",
                                                                                              "ASN1ToJson",
                                                                                              "XmlTransformer",
                                                                                              "UrlEncode",
                                                                                              "UrlDecodeUni",
                                                                                              "UrlDecode",
                                                                                              "HexDecode",
                                                                                              "HexEncode",
                                                                                              "ToLowerCase",
                                                                                              "ToUpperCase",
                                                                                              "Utf8ToUnicode",
                                                                                              "Trim",
                                                                                              "ICAPFileChecker",
                                                                                              "MessageToFile",
                                                                                              "MultipartFormGenerateFromVar",
                                                                                              "HttpSender",
                                                                                              "MessageAccumulator",
                                                                                              "MessageFromAccumulator",
                                                                                              "MessageFromPattern",
                                                                                              "MultipartFormGenerateFromMessage",
                                                                                              "JsonPatchMessage",
                                                                                              "JsonPatchVar",
                                                                                              "DigestFromMessage",
                                                                                              "Base64Encode",
                                                                                              "HMac",
                                                                                              "FileToMessage",
                                                                                              "JwtVerifier",
                                                                                              "CharsetChecker",
                                                                                              "LdapSearch",
                                                                                              "UnicodeDecode",
                                                                                              "MessageMapper",
                                                                                              "SimpleRateLimiter",
                                                                                              "EventSourceConverter",
                                                                                              "LazySessionTimeChecker",
                                                                                              "CalculateMessageProperties"
                                                                                            ]
                                                                                          },
                                                                                          "id": {
                                                                                            "description": "An identificator of action",
                                                                                            "type": [
                                                                                              "number",
                                                                                              "string"
                                                                                            ]
                                                                                          },
                                                                                          "conditions": {
                                                                                            "description": "Specifies the conditions for performina an action.",
                                                                                            "type": "array",
                                                                                            "items": {
                                                                                              "type": "object",
                                                                                              "additionalProperties": false,
                                                                                              "properties": {
                                                                                                "var": {
                                                                                                  "description": "Specifies a variable to check.",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ]
                                                                                                },
                                                                                                "operator": {
                                                                                                  "description": "Specifies an operator.",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ],
                                                                                                  "enum": [
                                                                                                    "=",
                                                                                                    "!=",
                                                                                                    "<=",
                                                                                                    ">=",
                                                                                                    ">",
                                                                                                    "<",
                                                                                                    "in",
                                                                                                    "not_in",
                                                                                                    "~",
                                                                                                    "~*",
                                                                                                    "!~",
                                                                                                    "!~*",
                                                                                                    "ip_range",
                                                                                                    "!ip_range",
                                                                                                    "dn_mask",
                                                                                                    "!dn_mask"
                                                                                                  ]
                                                                                                },
                                                                                                "val": {
                                                                                                  "description": "Specifies a value to check.",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ]
                                                                                                }
                                                                                              },
                                                                                              "required": [
                                                                                                "var",
                                                                                                "operator",
                                                                                                "val"
                                                                                              ]
                                                                                            }
                                                                                          },
                                                                                          "trace_config": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "enableAllActions": {
                                                                                                "description": "enable tracing of all actions in chains",
                                                                                                "type": "boolean"
                                                                                              },
                                                                                              "enableAllChains": {
                                                                                                "description": "enable tracing of all actions in child chains",
                                                                                                "type": "boolean"
                                                                                              },
                                                                                              "mode": {
                                                                                                "description": "Enable or disable tracing at this level.",
                                                                                                "type": "object",
                                                                                                "additionalProperties": false,
                                                                                                "properties": {
                                                                                                  "enabled": {
                                                                                                    "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                    "type": [
                                                                                                      "number",
                                                                                                      "string"
                                                                                                    ],
                                                                                                    "enum": [
                                                                                                      "on",
                                                                                                      "off",
                                                                                                      "var_based"
                                                                                                    ]
                                                                                                  },
                                                                                                  "var": {
                                                                                                    "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                    "type": [
                                                                                                      "number",
                                                                                                      "string"
                                                                                                    ]
                                                                                                  }
                                                                                                }
                                                                                              },
                                                                                              "spanAttributes": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "name": {
                                                                                                      "description": "name of attribute",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "value": {
                                                                                                      "description": "value of attribute, can contain variables",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    }
                                                                                                  }
                                                                                                }
                                                                                              },
                                                                                              "spanName": {
                                                                                                "description": "Specify name of span",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "enableSocketsTracing": {
                                                                                                "description": "Enable or disable socket tracing, by default enabled",
                                                                                                "type": "boolean"
                                                                                              }
                                                                                            }
                                                                                          },
                                                                                          "params": {
                                                                                            "description": "Specifies extra parameters for the actions.",
                                                                                            "type": "object",
                                                                                            "additionalProperties": true
                                                                                          },
                                                                                          "requiredChildOneOf": {
                                                                                            "description": "Specifies unverifed action check",
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "decision": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ],
                                                                                                "enum": [
                                                                                                  "BLOCK",
                                                                                                  "WARN"
                                                                                                ]
                                                                                              },
                                                                                              "onlyCheckers": {
                                                                                                "type": "boolean"
                                                                                              },
                                                                                              "include": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ]
                                                                                                }
                                                                                              },
                                                                                              "exclude": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "string"
                                                                                                }
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "decision"
                                                                                            ],
                                                                                            "allOf": [
                                                                                              {
                                                                                                "if": {
                                                                                                  "type": "object",
                                                                                                  "required": [
                                                                                                    "exclude"
                                                                                                  ],
                                                                                                  "properties": {
                                                                                                    "exclude": {}
                                                                                                  }
                                                                                                },
                                                                                                "then": {
                                                                                                  "not": {
                                                                                                    "required": [
                                                                                                      "include"
                                                                                                    ]
                                                                                                  }
                                                                                                }
                                                                                              },
                                                                                              {
                                                                                                "if": {
                                                                                                  "type": "object",
                                                                                                  "required": [
                                                                                                    "include"
                                                                                                  ],
                                                                                                  "properties": {
                                                                                                    "include": {}
                                                                                                  }
                                                                                                },
                                                                                                "then": {
                                                                                                  "not": {
                                                                                                    "required": [
                                                                                                      "exclude"
                                                                                                    ]
                                                                                                  }
                                                                                                }
                                                                                              }
                                                                                            ]
                                                                                          },
                                                                                          "actions": {
                                                                                            "description": "Specifies a list of actions.",
                                                                                            "type": "array",
                                                                                            "items": {
                                                                                              "type": "object",
                                                                                              "additionalProperties": false,
                                                                                              "properties": {
                                                                                                "action": {
                                                                                                  "description": "Specifies an action to perform",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ],
                                                                                                  "enum": [
                                                                                                    "ASN1ContentExtractor",
                                                                                                    "Base64Decode",
                                                                                                    "ConditionChecker",
                                                                                                    "CheckDataSize",
                                                                                                    "CheckMimeType",
                                                                                                    "JsonPathExtract",
                                                                                                    "JsonPathExtractToVars",
                                                                                                    "JsonValidation",
                                                                                                    "XsdValidation",
                                                                                                    "PostFormDataToFlateJson",
                                                                                                    "MultipartExtract",
                                                                                                    "SetMessageFromVar",
                                                                                                    "SetVarFromMessage",
                                                                                                    "JwsToJson",
                                                                                                    "XPathExtract",
                                                                                                    "XPathExtractToVars",
                                                                                                    "SharedMapDeleter",
                                                                                                    "SharedMapRemover",
                                                                                                    "SharedMapSetter",
                                                                                                    "SharedMapGetter",
                                                                                                    "RandomNumberToVar",
                                                                                                    "VarsToSharedMap",
                                                                                                    "SharedMapToVars",
                                                                                                    "AntivirusFileChecker",
                                                                                                    "MtomExtractor",
                                                                                                    "JsonTransformer",
                                                                                                    "SetVar",
                                                                                                    "GraphQLRequestValidation",
                                                                                                    "ProtobufValidation",
                                                                                                    "OpenApiValidation",
                                                                                                    "DelimiterSplitter",
                                                                                                    "VarsToFile",
                                                                                                    "FileToVars",
                                                                                                    "WsdlValidation",
                                                                                                    "HttpFilter",
                                                                                                    "ProtobufToJson",
                                                                                                    "FilterMds",
                                                                                                    "OcspSignValidator",
                                                                                                    "OcspToJson",
                                                                                                    "ASN1ToJson",
                                                                                                    "XmlTransformer",
                                                                                                    "UrlEncode",
                                                                                                    "UrlDecodeUni",
                                                                                                    "UrlDecode",
                                                                                                    "HexDecode",
                                                                                                    "HexEncode",
                                                                                                    "ToLowerCase",
                                                                                                    "ToUpperCase",
                                                                                                    "Utf8ToUnicode",
                                                                                                    "Trim",
                                                                                                    "ICAPFileChecker",
                                                                                                    "MessageToFile",
                                                                                                    "MultipartFormGenerateFromVar",
                                                                                                    "HttpSender",
                                                                                                    "MessageAccumulator",
                                                                                                    "MessageFromAccumulator",
                                                                                                    "MessageFromPattern",
                                                                                                    "MultipartFormGenerateFromMessage",
                                                                                                    "JsonPatchMessage",
                                                                                                    "JsonPatchVar",
                                                                                                    "DigestFromMessage",
                                                                                                    "Base64Encode",
                                                                                                    "HMac",
                                                                                                    "FileToMessage",
                                                                                                    "JwtVerifier",
                                                                                                    "CharsetChecker",
                                                                                                    "LdapSearch",
                                                                                                    "UnicodeDecode",
                                                                                                    "MessageMapper",
                                                                                                    "SimpleRateLimiter",
                                                                                                    "EventSourceConverter",
                                                                                                    "LazySessionTimeChecker",
                                                                                                    "CalculateMessageProperties"
                                                                                                  ]
                                                                                                },
                                                                                                "id": {
                                                                                                  "description": "An identificator of action",
                                                                                                  "type": [
                                                                                                    "number",
                                                                                                    "string"
                                                                                                  ]
                                                                                                },
                                                                                                "conditions": {
                                                                                                  "description": "Specifies the conditions for performina an action.",
                                                                                                  "type": "array",
                                                                                                  "items": {
                                                                                                    "type": "object",
                                                                                                    "additionalProperties": false,
                                                                                                    "properties": {
                                                                                                      "var": {
                                                                                                        "description": "Specifies a variable to check.",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ]
                                                                                                      },
                                                                                                      "operator": {
                                                                                                        "description": "Specifies an operator.",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ],
                                                                                                        "enum": [
                                                                                                          "=",
                                                                                                          "!=",
                                                                                                          "<=",
                                                                                                          ">=",
                                                                                                          ">",
                                                                                                          "<",
                                                                                                          "in",
                                                                                                          "not_in",
                                                                                                          "~",
                                                                                                          "~*",
                                                                                                          "!~",
                                                                                                          "!~*",
                                                                                                          "ip_range",
                                                                                                          "!ip_range",
                                                                                                          "dn_mask",
                                                                                                          "!dn_mask"
                                                                                                        ]
                                                                                                      },
                                                                                                      "val": {
                                                                                                        "description": "Specifies a value to check.",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ]
                                                                                                      }
                                                                                                    },
                                                                                                    "required": [
                                                                                                      "var",
                                                                                                      "operator",
                                                                                                      "val"
                                                                                                    ]
                                                                                                  }
                                                                                                },
                                                                                                "trace_config": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "enableAllActions": {
                                                                                                      "description": "enable tracing of all actions in chains",
                                                                                                      "type": "boolean"
                                                                                                    },
                                                                                                    "enableAllChains": {
                                                                                                      "description": "enable tracing of all actions in child chains",
                                                                                                      "type": "boolean"
                                                                                                    },
                                                                                                    "mode": {
                                                                                                      "description": "Enable or disable tracing at this level.",
                                                                                                      "type": "object",
                                                                                                      "additionalProperties": false,
                                                                                                      "properties": {
                                                                                                        "enabled": {
                                                                                                          "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                          "type": [
                                                                                                            "number",
                                                                                                            "string"
                                                                                                          ],
                                                                                                          "enum": [
                                                                                                            "on",
                                                                                                            "off",
                                                                                                            "var_based"
                                                                                                          ]
                                                                                                        },
                                                                                                        "var": {
                                                                                                          "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                          "type": [
                                                                                                            "number",
                                                                                                            "string"
                                                                                                          ]
                                                                                                        }
                                                                                                      }
                                                                                                    },
                                                                                                    "spanAttributes": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "name": {
                                                                                                            "description": "name of attribute",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "value": {
                                                                                                            "description": "value of attribute, can contain variables",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          }
                                                                                                        }
                                                                                                      }
                                                                                                    },
                                                                                                    "spanName": {
                                                                                                      "description": "Specify name of span",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "enableSocketsTracing": {
                                                                                                      "description": "Enable or disable socket tracing, by default enabled",
                                                                                                      "type": "boolean"
                                                                                                    }
                                                                                                  }
                                                                                                },
                                                                                                "params": {
                                                                                                  "description": "Specifies extra parameters for the actions.",
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": true
                                                                                                },
                                                                                                "requiredChildOneOf": {
                                                                                                  "description": "Specifies unverifed action check",
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "decision": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ],
                                                                                                      "enum": [
                                                                                                        "BLOCK",
                                                                                                        "WARN"
                                                                                                      ]
                                                                                                    },
                                                                                                    "onlyCheckers": {
                                                                                                      "type": "boolean"
                                                                                                    },
                                                                                                    "include": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ]
                                                                                                      }
                                                                                                    },
                                                                                                    "exclude": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "string"
                                                                                                      }
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "decision"
                                                                                                  ],
                                                                                                  "allOf": [
                                                                                                    {
                                                                                                      "if": {
                                                                                                        "type": "object",
                                                                                                        "required": [
                                                                                                          "exclude"
                                                                                                        ],
                                                                                                        "properties": {
                                                                                                          "exclude": {}
                                                                                                        }
                                                                                                      },
                                                                                                      "then": {
                                                                                                        "not": {
                                                                                                          "required": [
                                                                                                            "include"
                                                                                                          ]
                                                                                                        }
                                                                                                      }
                                                                                                    },
                                                                                                    {
                                                                                                      "if": {
                                                                                                        "type": "object",
                                                                                                        "required": [
                                                                                                          "include"
                                                                                                        ],
                                                                                                        "properties": {
                                                                                                          "include": {}
                                                                                                        }
                                                                                                      },
                                                                                                      "then": {
                                                                                                        "not": {
                                                                                                          "required": [
                                                                                                            "exclude"
                                                                                                          ]
                                                                                                        }
                                                                                                      }
                                                                                                    }
                                                                                                  ]
                                                                                                },
                                                                                                "actions": {
                                                                                                  "description": "Specifies a list of actions.",
                                                                                                  "type": "array",
                                                                                                  "items": {
                                                                                                    "type": "object",
                                                                                                    "additionalProperties": false,
                                                                                                    "properties": {
                                                                                                      "action": {
                                                                                                        "description": "Specifies an action to perform",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ],
                                                                                                        "enum": [
                                                                                                          "ASN1ContentExtractor",
                                                                                                          "Base64Decode",
                                                                                                          "ConditionChecker",
                                                                                                          "CheckDataSize",
                                                                                                          "CheckMimeType",
                                                                                                          "JsonPathExtract",
                                                                                                          "JsonPathExtractToVars",
                                                                                                          "JsonValidation",
                                                                                                          "XsdValidation",
                                                                                                          "PostFormDataToFlateJson",
                                                                                                          "MultipartExtract",
                                                                                                          "SetMessageFromVar",
                                                                                                          "SetVarFromMessage",
                                                                                                          "JwsToJson",
                                                                                                          "XPathExtract",
                                                                                                          "XPathExtractToVars",
                                                                                                          "SharedMapDeleter",
                                                                                                          "SharedMapRemover",
                                                                                                          "SharedMapSetter",
                                                                                                          "SharedMapGetter",
                                                                                                          "RandomNumberToVar",
                                                                                                          "VarsToSharedMap",
                                                                                                          "SharedMapToVars",
                                                                                                          "AntivirusFileChecker",
                                                                                                          "MtomExtractor",
                                                                                                          "JsonTransformer",
                                                                                                          "SetVar",
                                                                                                          "GraphQLRequestValidation",
                                                                                                          "ProtobufValidation",
                                                                                                          "OpenApiValidation",
                                                                                                          "DelimiterSplitter",
                                                                                                          "VarsToFile",
                                                                                                          "FileToVars",
                                                                                                          "WsdlValidation",
                                                                                                          "HttpFilter",
                                                                                                          "ProtobufToJson",
                                                                                                          "FilterMds",
                                                                                                          "OcspSignValidator",
                                                                                                          "OcspToJson",
                                                                                                          "ASN1ToJson",
                                                                                                          "XmlTransformer",
                                                                                                          "UrlEncode",
                                                                                                          "UrlDecodeUni",
                                                                                                          "UrlDecode",
                                                                                                          "HexDecode",
                                                                                                          "HexEncode",
                                                                                                          "ToLowerCase",
                                                                                                          "ToUpperCase",
                                                                                                          "Utf8ToUnicode",
                                                                                                          "Trim",
                                                                                                          "ICAPFileChecker",
                                                                                                          "MessageToFile",
                                                                                                          "MultipartFormGenerateFromVar",
                                                                                                          "HttpSender",
                                                                                                          "MessageAccumulator",
                                                                                                          "MessageFromAccumulator",
                                                                                                          "MessageFromPattern",
                                                                                                          "MultipartFormGenerateFromMessage",
                                                                                                          "JsonPatchMessage",
                                                                                                          "JsonPatchVar",
                                                                                                          "DigestFromMessage",
                                                                                                          "Base64Encode",
                                                                                                          "HMac",
                                                                                                          "FileToMessage",
                                                                                                          "JwtVerifier",
                                                                                                          "CharsetChecker",
                                                                                                          "LdapSearch",
                                                                                                          "UnicodeDecode",
                                                                                                          "MessageMapper",
                                                                                                          "SimpleRateLimiter",
                                                                                                          "EventSourceConverter",
                                                                                                          "LazySessionTimeChecker",
                                                                                                          "CalculateMessageProperties"
                                                                                                        ]
                                                                                                      },
                                                                                                      "id": {
                                                                                                        "description": "An identificator of action",
                                                                                                        "type": [
                                                                                                          "number",
                                                                                                          "string"
                                                                                                        ]
                                                                                                      },
                                                                                                      "conditions": {
                                                                                                        "description": "Specifies the conditions for performina an action.",
                                                                                                        "type": "array",
                                                                                                        "items": {
                                                                                                          "type": "object",
                                                                                                          "additionalProperties": false,
                                                                                                          "properties": {
                                                                                                            "var": {
                                                                                                              "description": "Specifies a variable to check.",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ]
                                                                                                            },
                                                                                                            "operator": {
                                                                                                              "description": "Specifies an operator.",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ],
                                                                                                              "enum": [
                                                                                                                "=",
                                                                                                                "!=",
                                                                                                                "<=",
                                                                                                                ">=",
                                                                                                                ">",
                                                                                                                "<",
                                                                                                                "in",
                                                                                                                "not_in",
                                                                                                                "~",
                                                                                                                "~*",
                                                                                                                "!~",
                                                                                                                "!~*",
                                                                                                                "ip_range",
                                                                                                                "!ip_range",
                                                                                                                "dn_mask",
                                                                                                                "!dn_mask"
                                                                                                              ]
                                                                                                            },
                                                                                                            "val": {
                                                                                                              "description": "Specifies a value to check.",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ]
                                                                                                            }
                                                                                                          },
                                                                                                          "required": [
                                                                                                            "var",
                                                                                                            "operator",
                                                                                                            "val"
                                                                                                          ]
                                                                                                        }
                                                                                                      },
                                                                                                      "trace_config": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "enableAllActions": {
                                                                                                            "description": "enable tracing of all actions in chains",
                                                                                                            "type": "boolean"
                                                                                                          },
                                                                                                          "enableAllChains": {
                                                                                                            "description": "enable tracing of all actions in child chains",
                                                                                                            "type": "boolean"
                                                                                                          },
                                                                                                          "mode": {
                                                                                                            "description": "Enable or disable tracing at this level.",
                                                                                                            "type": "object",
                                                                                                            "additionalProperties": false,
                                                                                                            "properties": {
                                                                                                              "enabled": {
                                                                                                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                "type": [
                                                                                                                  "number",
                                                                                                                  "string"
                                                                                                                ],
                                                                                                                "enum": [
                                                                                                                  "on",
                                                                                                                  "off",
                                                                                                                  "var_based"
                                                                                                                ]
                                                                                                              },
                                                                                                              "var": {
                                                                                                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                "type": [
                                                                                                                  "number",
                                                                                                                  "string"
                                                                                                                ]
                                                                                                              }
                                                                                                            }
                                                                                                          },
                                                                                                          "spanAttributes": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "name": {
                                                                                                                  "description": "name of attribute",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "value": {
                                                                                                                  "description": "value of attribute, can contain variables",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                }
                                                                                                              }
                                                                                                            }
                                                                                                          },
                                                                                                          "spanName": {
                                                                                                            "description": "Specify name of span",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "enableSocketsTracing": {
                                                                                                            "description": "Enable or disable socket tracing, by default enabled",
                                                                                                            "type": "boolean"
                                                                                                          }
                                                                                                        }
                                                                                                      },
                                                                                                      "params": {
                                                                                                        "description": "Specifies extra parameters for the actions.",
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": true
                                                                                                      },
                                                                                                      "requiredChildOneOf": {
                                                                                                        "description": "Specifies unverifed action check",
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "decision": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ],
                                                                                                            "enum": [
                                                                                                              "BLOCK",
                                                                                                              "WARN"
                                                                                                            ]
                                                                                                          },
                                                                                                          "onlyCheckers": {
                                                                                                            "type": "boolean"
                                                                                                          },
                                                                                                          "include": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ]
                                                                                                            }
                                                                                                          },
                                                                                                          "exclude": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "string"
                                                                                                            }
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "decision"
                                                                                                        ],
                                                                                                        "allOf": [
                                                                                                          {
                                                                                                            "if": {
                                                                                                              "type": "object",
                                                                                                              "required": [
                                                                                                                "exclude"
                                                                                                              ],
                                                                                                              "properties": {
                                                                                                                "exclude": {}
                                                                                                              }
                                                                                                            },
                                                                                                            "then": {
                                                                                                              "not": {
                                                                                                                "required": [
                                                                                                                  "include"
                                                                                                                ]
                                                                                                              }
                                                                                                            }
                                                                                                          },
                                                                                                          {
                                                                                                            "if": {
                                                                                                              "type": "object",
                                                                                                              "required": [
                                                                                                                "include"
                                                                                                              ],
                                                                                                              "properties": {
                                                                                                                "include": {}
                                                                                                              }
                                                                                                            },
                                                                                                            "then": {
                                                                                                              "not": {
                                                                                                                "required": [
                                                                                                                  "exclude"
                                                                                                                ]
                                                                                                              }
                                                                                                            }
                                                                                                          }
                                                                                                        ]
                                                                                                      },
                                                                                                      "actions": {
                                                                                                        "description": "Specifies a list of actions.",
                                                                                                        "type": "array",
                                                                                                        "items": {
                                                                                                          "type": "object",
                                                                                                          "additionalProperties": false,
                                                                                                          "properties": {
                                                                                                            "action": {
                                                                                                              "description": "Specifies an action to perform",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ],
                                                                                                              "enum": [
                                                                                                                "ASN1ContentExtractor",
                                                                                                                "Base64Decode",
                                                                                                                "ConditionChecker",
                                                                                                                "CheckDataSize",
                                                                                                                "CheckMimeType",
                                                                                                                "JsonPathExtract",
                                                                                                                "JsonPathExtractToVars",
                                                                                                                "JsonValidation",
                                                                                                                "XsdValidation",
                                                                                                                "PostFormDataToFlateJson",
                                                                                                                "MultipartExtract",
                                                                                                                "SetMessageFromVar",
                                                                                                                "SetVarFromMessage",
                                                                                                                "JwsToJson",
                                                                                                                "XPathExtract",
                                                                                                                "XPathExtractToVars",
                                                                                                                "SharedMapDeleter",
                                                                                                                "SharedMapRemover",
                                                                                                                "SharedMapSetter",
                                                                                                                "SharedMapGetter",
                                                                                                                "RandomNumberToVar",
                                                                                                                "VarsToSharedMap",
                                                                                                                "SharedMapToVars",
                                                                                                                "AntivirusFileChecker",
                                                                                                                "MtomExtractor",
                                                                                                                "JsonTransformer",
                                                                                                                "SetVar",
                                                                                                                "GraphQLRequestValidation",
                                                                                                                "ProtobufValidation",
                                                                                                                "OpenApiValidation",
                                                                                                                "DelimiterSplitter",
                                                                                                                "VarsToFile",
                                                                                                                "FileToVars",
                                                                                                                "WsdlValidation",
                                                                                                                "HttpFilter",
                                                                                                                "ProtobufToJson",
                                                                                                                "FilterMds",
                                                                                                                "OcspSignValidator",
                                                                                                                "OcspToJson",
                                                                                                                "ASN1ToJson",
                                                                                                                "XmlTransformer",
                                                                                                                "UrlEncode",
                                                                                                                "UrlDecodeUni",
                                                                                                                "UrlDecode",
                                                                                                                "HexDecode",
                                                                                                                "HexEncode",
                                                                                                                "ToLowerCase",
                                                                                                                "ToUpperCase",
                                                                                                                "Utf8ToUnicode",
                                                                                                                "Trim",
                                                                                                                "ICAPFileChecker",
                                                                                                                "MessageToFile",
                                                                                                                "MultipartFormGenerateFromVar",
                                                                                                                "HttpSender",
                                                                                                                "MessageAccumulator",
                                                                                                                "MessageFromAccumulator",
                                                                                                                "MessageFromPattern",
                                                                                                                "MultipartFormGenerateFromMessage",
                                                                                                                "JsonPatchMessage",
                                                                                                                "JsonPatchVar",
                                                                                                                "DigestFromMessage",
                                                                                                                "Base64Encode",
                                                                                                                "HMac",
                                                                                                                "FileToMessage",
                                                                                                                "JwtVerifier",
                                                                                                                "CharsetChecker",
                                                                                                                "LdapSearch",
                                                                                                                "UnicodeDecode",
                                                                                                                "MessageMapper",
                                                                                                                "SimpleRateLimiter",
                                                                                                                "EventSourceConverter",
                                                                                                                "LazySessionTimeChecker",
                                                                                                                "CalculateMessageProperties"
                                                                                                              ]
                                                                                                            },
                                                                                                            "id": {
                                                                                                              "description": "An identificator of action",
                                                                                                              "type": [
                                                                                                                "number",
                                                                                                                "string"
                                                                                                              ]
                                                                                                            },
                                                                                                            "conditions": {
                                                                                                              "description": "Specifies the conditions for performina an action.",
                                                                                                              "type": "array",
                                                                                                              "items": {
                                                                                                                "type": "object",
                                                                                                                "additionalProperties": false,
                                                                                                                "properties": {
                                                                                                                  "var": {
                                                                                                                    "description": "Specifies a variable to check.",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "operator": {
                                                                                                                    "description": "Specifies an operator.",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ],
                                                                                                                    "enum": [
                                                                                                                      "=",
                                                                                                                      "!=",
                                                                                                                      "<=",
                                                                                                                      ">=",
                                                                                                                      ">",
                                                                                                                      "<",
                                                                                                                      "in",
                                                                                                                      "not_in",
                                                                                                                      "~",
                                                                                                                      "~*",
                                                                                                                      "!~",
                                                                                                                      "!~*",
                                                                                                                      "ip_range",
                                                                                                                      "!ip_range",
                                                                                                                      "dn_mask",
                                                                                                                      "!dn_mask"
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "val": {
                                                                                                                    "description": "Specifies a value to check.",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                },
                                                                                                                "required": [
                                                                                                                  "var",
                                                                                                                  "operator",
                                                                                                                  "val"
                                                                                                                ]
                                                                                                              }
                                                                                                            },
                                                                                                            "trace_config": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "enableAllActions": {
                                                                                                                  "description": "enable tracing of all actions in chains",
                                                                                                                  "type": "boolean"
                                                                                                                },
                                                                                                                "enableAllChains": {
                                                                                                                  "description": "enable tracing of all actions in child chains",
                                                                                                                  "type": "boolean"
                                                                                                                },
                                                                                                                "mode": {
                                                                                                                  "description": "Enable or disable tracing at this level.",
                                                                                                                  "type": "object",
                                                                                                                  "additionalProperties": false,
                                                                                                                  "properties": {
                                                                                                                    "enabled": {
                                                                                                                      "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                      "type": [
                                                                                                                        "number",
                                                                                                                        "string"
                                                                                                                      ],
                                                                                                                      "enum": [
                                                                                                                        "on",
                                                                                                                        "off",
                                                                                                                        "var_based"
                                                                                                                      ]
                                                                                                                    },
                                                                                                                    "var": {
                                                                                                                      "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                      "type": [
                                                                                                                        "number",
                                                                                                                        "string"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  }
                                                                                                                },
                                                                                                                "spanAttributes": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "name": {
                                                                                                                        "description": "name of attribute",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "value": {
                                                                                                                        "description": "value of attribute, can contain variables",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      }
                                                                                                                    }
                                                                                                                  }
                                                                                                                },
                                                                                                                "spanName": {
                                                                                                                  "description": "Specify name of span",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "enableSocketsTracing": {
                                                                                                                  "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                  "type": "boolean"
                                                                                                                }
                                                                                                              }
                                                                                                            },
                                                                                                            "params": {
                                                                                                              "description": "Specifies extra parameters for the actions.",
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": true
                                                                                                            },
                                                                                                            "requiredChildOneOf": {
                                                                                                              "description": "Specifies unverifed action check",
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "decision": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ],
                                                                                                                  "enum": [
                                                                                                                    "BLOCK",
                                                                                                                    "WARN"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "onlyCheckers": {
                                                                                                                  "type": "boolean"
                                                                                                                },
                                                                                                                "include": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                },
                                                                                                                "exclude": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "string"
                                                                                                                  }
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "decision"
                                                                                                              ],
                                                                                                              "allOf": [
                                                                                                                {
                                                                                                                  "if": {
                                                                                                                    "type": "object",
                                                                                                                    "required": [
                                                                                                                      "exclude"
                                                                                                                    ],
                                                                                                                    "properties": {
                                                                                                                      "exclude": {}
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "then": {
                                                                                                                    "not": {
                                                                                                                      "required": [
                                                                                                                        "include"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  }
                                                                                                                },
                                                                                                                {
                                                                                                                  "if": {
                                                                                                                    "type": "object",
                                                                                                                    "required": [
                                                                                                                      "include"
                                                                                                                    ],
                                                                                                                    "properties": {
                                                                                                                      "include": {}
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "then": {
                                                                                                                    "not": {
                                                                                                                      "required": [
                                                                                                                        "exclude"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  }
                                                                                                                }
                                                                                                              ]
                                                                                                            },
                                                                                                            "actions": {
                                                                                                              "description": "Specifies a list of actions.",
                                                                                                              "type": "array",
                                                                                                              "items": {
                                                                                                                "type": "object",
                                                                                                                "additionalProperties": false,
                                                                                                                "properties": {
                                                                                                                  "action": {
                                                                                                                    "description": "Specifies an action to perform",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ],
                                                                                                                    "enum": [
                                                                                                                      "ASN1ContentExtractor",
                                                                                                                      "Base64Decode",
                                                                                                                      "ConditionChecker",
                                                                                                                      "CheckDataSize",
                                                                                                                      "CheckMimeType",
                                                                                                                      "JsonPathExtract",
                                                                                                                      "JsonPathExtractToVars",
                                                                                                                      "JsonValidation",
                                                                                                                      "XsdValidation",
                                                                                                                      "PostFormDataToFlateJson",
                                                                                                                      "MultipartExtract",
                                                                                                                      "SetMessageFromVar",
                                                                                                                      "SetVarFromMessage",
                                                                                                                      "JwsToJson",
                                                                                                                      "XPathExtract",
                                                                                                                      "XPathExtractToVars",
                                                                                                                      "SharedMapDeleter",
                                                                                                                      "SharedMapRemover",
                                                                                                                      "SharedMapSetter",
                                                                                                                      "SharedMapGetter",
                                                                                                                      "RandomNumberToVar",
                                                                                                                      "VarsToSharedMap",
                                                                                                                      "SharedMapToVars",
                                                                                                                      "AntivirusFileChecker",
                                                                                                                      "MtomExtractor",
                                                                                                                      "JsonTransformer",
                                                                                                                      "SetVar",
                                                                                                                      "GraphQLRequestValidation",
                                                                                                                      "ProtobufValidation",
                                                                                                                      "OpenApiValidation",
                                                                                                                      "DelimiterSplitter",
                                                                                                                      "VarsToFile",
                                                                                                                      "FileToVars",
                                                                                                                      "WsdlValidation",
                                                                                                                      "HttpFilter",
                                                                                                                      "ProtobufToJson",
                                                                                                                      "FilterMds",
                                                                                                                      "OcspSignValidator",
                                                                                                                      "OcspToJson",
                                                                                                                      "ASN1ToJson",
                                                                                                                      "XmlTransformer",
                                                                                                                      "UrlEncode",
                                                                                                                      "UrlDecodeUni",
                                                                                                                      "UrlDecode",
                                                                                                                      "HexDecode",
                                                                                                                      "HexEncode",
                                                                                                                      "ToLowerCase",
                                                                                                                      "ToUpperCase",
                                                                                                                      "Utf8ToUnicode",
                                                                                                                      "Trim",
                                                                                                                      "ICAPFileChecker",
                                                                                                                      "MessageToFile",
                                                                                                                      "MultipartFormGenerateFromVar",
                                                                                                                      "HttpSender",
                                                                                                                      "MessageAccumulator",
                                                                                                                      "MessageFromAccumulator",
                                                                                                                      "MessageFromPattern",
                                                                                                                      "MultipartFormGenerateFromMessage",
                                                                                                                      "JsonPatchMessage",
                                                                                                                      "JsonPatchVar",
                                                                                                                      "DigestFromMessage",
                                                                                                                      "Base64Encode",
                                                                                                                      "HMac",
                                                                                                                      "FileToMessage",
                                                                                                                      "JwtVerifier",
                                                                                                                      "CharsetChecker",
                                                                                                                      "LdapSearch",
                                                                                                                      "UnicodeDecode",
                                                                                                                      "MessageMapper",
                                                                                                                      "SimpleRateLimiter",
                                                                                                                      "EventSourceConverter",
                                                                                                                      "LazySessionTimeChecker",
                                                                                                                      "CalculateMessageProperties"
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "id": {
                                                                                                                    "description": "An identificator of action",
                                                                                                                    "type": [
                                                                                                                      "number",
                                                                                                                      "string"
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "conditions": {
                                                                                                                    "description": "Specifies the conditions for performina an action.",
                                                                                                                    "type": "array",
                                                                                                                    "items": {
                                                                                                                      "type": "object",
                                                                                                                      "additionalProperties": false,
                                                                                                                      "properties": {
                                                                                                                        "var": {
                                                                                                                          "description": "Specifies a variable to check.",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "operator": {
                                                                                                                          "description": "Specifies an operator.",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ],
                                                                                                                          "enum": [
                                                                                                                            "=",
                                                                                                                            "!=",
                                                                                                                            "<=",
                                                                                                                            ">=",
                                                                                                                            ">",
                                                                                                                            "<",
                                                                                                                            "in",
                                                                                                                            "not_in",
                                                                                                                            "~",
                                                                                                                            "~*",
                                                                                                                            "!~",
                                                                                                                            "!~*",
                                                                                                                            "ip_range",
                                                                                                                            "!ip_range",
                                                                                                                            "dn_mask",
                                                                                                                            "!dn_mask"
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "val": {
                                                                                                                          "description": "Specifies a value to check.",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "required": [
                                                                                                                        "var",
                                                                                                                        "operator",
                                                                                                                        "val"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "trace_config": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "enableAllActions": {
                                                                                                                        "description": "enable tracing of all actions in chains",
                                                                                                                        "type": "boolean"
                                                                                                                      },
                                                                                                                      "enableAllChains": {
                                                                                                                        "description": "enable tracing of all actions in child chains",
                                                                                                                        "type": "boolean"
                                                                                                                      },
                                                                                                                      "mode": {
                                                                                                                        "description": "Enable or disable tracing at this level.",
                                                                                                                        "type": "object",
                                                                                                                        "additionalProperties": false,
                                                                                                                        "properties": {
                                                                                                                          "enabled": {
                                                                                                                            "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                            "type": [
                                                                                                                              "number",
                                                                                                                              "string"
                                                                                                                            ],
                                                                                                                            "enum": [
                                                                                                                              "on",
                                                                                                                              "off",
                                                                                                                              "var_based"
                                                                                                                            ]
                                                                                                                          },
                                                                                                                          "var": {
                                                                                                                            "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                            "type": [
                                                                                                                              "number",
                                                                                                                              "string"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "spanAttributes": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "name": {
                                                                                                                              "description": "name of attribute",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "value": {
                                                                                                                              "description": "value of attribute, can contain variables",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            }
                                                                                                                          }
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "spanName": {
                                                                                                                        "description": "Specify name of span",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "enableSocketsTracing": {
                                                                                                                        "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                        "type": "boolean"
                                                                                                                      }
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "params": {
                                                                                                                    "description": "Specifies extra parameters for the actions.",
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": true
                                                                                                                  },
                                                                                                                  "requiredChildOneOf": {
                                                                                                                    "description": "Specifies unverifed action check",
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "decision": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ],
                                                                                                                        "enum": [
                                                                                                                          "BLOCK",
                                                                                                                          "WARN"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "onlyCheckers": {
                                                                                                                        "type": "boolean"
                                                                                                                      },
                                                                                                                      "include": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "exclude": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "string"
                                                                                                                        }
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "decision"
                                                                                                                    ],
                                                                                                                    "allOf": [
                                                                                                                      {
                                                                                                                        "if": {
                                                                                                                          "type": "object",
                                                                                                                          "required": [
                                                                                                                            "exclude"
                                                                                                                          ],
                                                                                                                          "properties": {
                                                                                                                            "exclude": {}
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "then": {
                                                                                                                          "not": {
                                                                                                                            "required": [
                                                                                                                              "include"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        }
                                                                                                                      },
                                                                                                                      {
                                                                                                                        "if": {
                                                                                                                          "type": "object",
                                                                                                                          "required": [
                                                                                                                            "include"
                                                                                                                          ],
                                                                                                                          "properties": {
                                                                                                                            "include": {}
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "then": {
                                                                                                                          "not": {
                                                                                                                            "required": [
                                                                                                                              "exclude"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        }
                                                                                                                      }
                                                                                                                    ]
                                                                                                                  },
                                                                                                                  "actions": {
                                                                                                                    "description": "Specifies a list of actions.",
                                                                                                                    "type": "array",
                                                                                                                    "items": {
                                                                                                                      "type": "object",
                                                                                                                      "additionalProperties": false,
                                                                                                                      "properties": {
                                                                                                                        "action": {
                                                                                                                          "description": "Specifies an action to perform",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ],
                                                                                                                          "enum": [
                                                                                                                            "ASN1ContentExtractor",
                                                                                                                            "Base64Decode",
                                                                                                                            "ConditionChecker",
                                                                                                                            "CheckDataSize",
                                                                                                                            "CheckMimeType",
                                                                                                                            "JsonPathExtract",
                                                                                                                            "JsonPathExtractToVars",
                                                                                                                            "JsonValidation",
                                                                                                                            "XsdValidation",
                                                                                                                            "PostFormDataToFlateJson",
                                                                                                                            "MultipartExtract",
                                                                                                                            "SetMessageFromVar",
                                                                                                                            "SetVarFromMessage",
                                                                                                                            "JwsToJson",
                                                                                                                            "XPathExtract",
                                                                                                                            "XPathExtractToVars",
                                                                                                                            "SharedMapDeleter",
                                                                                                                            "SharedMapRemover",
                                                                                                                            "SharedMapSetter",
                                                                                                                            "SharedMapGetter",
                                                                                                                            "RandomNumberToVar",
                                                                                                                            "VarsToSharedMap",
                                                                                                                            "SharedMapToVars",
                                                                                                                            "AntivirusFileChecker",
                                                                                                                            "MtomExtractor",
                                                                                                                            "JsonTransformer",
                                                                                                                            "SetVar",
                                                                                                                            "GraphQLRequestValidation",
                                                                                                                            "ProtobufValidation",
                                                                                                                            "OpenApiValidation",
                                                                                                                            "DelimiterSplitter",
                                                                                                                            "VarsToFile",
                                                                                                                            "FileToVars",
                                                                                                                            "WsdlValidation",
                                                                                                                            "HttpFilter",
                                                                                                                            "ProtobufToJson",
                                                                                                                            "FilterMds",
                                                                                                                            "OcspSignValidator",
                                                                                                                            "OcspToJson",
                                                                                                                            "ASN1ToJson",
                                                                                                                            "XmlTransformer",
                                                                                                                            "UrlEncode",
                                                                                                                            "UrlDecodeUni",
                                                                                                                            "UrlDecode",
                                                                                                                            "HexDecode",
                                                                                                                            "HexEncode",
                                                                                                                            "ToLowerCase",
                                                                                                                            "ToUpperCase",
                                                                                                                            "Utf8ToUnicode",
                                                                                                                            "Trim",
                                                                                                                            "ICAPFileChecker",
                                                                                                                            "MessageToFile",
                                                                                                                            "MultipartFormGenerateFromVar",
                                                                                                                            "HttpSender",
                                                                                                                            "MessageAccumulator",
                                                                                                                            "MessageFromAccumulator",
                                                                                                                            "MessageFromPattern",
                                                                                                                            "MultipartFormGenerateFromMessage",
                                                                                                                            "JsonPatchMessage",
                                                                                                                            "JsonPatchVar",
                                                                                                                            "DigestFromMessage",
                                                                                                                            "Base64Encode",
                                                                                                                            "HMac",
                                                                                                                            "FileToMessage",
                                                                                                                            "JwtVerifier",
                                                                                                                            "CharsetChecker",
                                                                                                                            "LdapSearch",
                                                                                                                            "UnicodeDecode",
                                                                                                                            "MessageMapper",
                                                                                                                            "SimpleRateLimiter",
                                                                                                                            "EventSourceConverter",
                                                                                                                            "LazySessionTimeChecker",
                                                                                                                            "CalculateMessageProperties"
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "id": {
                                                                                                                          "description": "An identificator of action",
                                                                                                                          "type": [
                                                                                                                            "number",
                                                                                                                            "string"
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "conditions": {
                                                                                                                          "description": "Specifies the conditions for performina an action.",
                                                                                                                          "type": "array",
                                                                                                                          "items": {
                                                                                                                            "type": "object",
                                                                                                                            "additionalProperties": false,
                                                                                                                            "properties": {
                                                                                                                              "var": {
                                                                                                                                "description": "Specifies a variable to check.",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "operator": {
                                                                                                                                "description": "Specifies an operator.",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ],
                                                                                                                                "enum": [
                                                                                                                                  "=",
                                                                                                                                  "!=",
                                                                                                                                  "<=",
                                                                                                                                  ">=",
                                                                                                                                  ">",
                                                                                                                                  "<",
                                                                                                                                  "in",
                                                                                                                                  "not_in",
                                                                                                                                  "~",
                                                                                                                                  "~*",
                                                                                                                                  "!~",
                                                                                                                                  "!~*",
                                                                                                                                  "ip_range",
                                                                                                                                  "!ip_range",
                                                                                                                                  "dn_mask",
                                                                                                                                  "!dn_mask"
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "val": {
                                                                                                                                "description": "Specifies a value to check.",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "required": [
                                                                                                                              "var",
                                                                                                                              "operator",
                                                                                                                              "val"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "trace_config": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "enableAllActions": {
                                                                                                                              "description": "enable tracing of all actions in chains",
                                                                                                                              "type": "boolean"
                                                                                                                            },
                                                                                                                            "enableAllChains": {
                                                                                                                              "description": "enable tracing of all actions in child chains",
                                                                                                                              "type": "boolean"
                                                                                                                            },
                                                                                                                            "mode": {
                                                                                                                              "description": "Enable or disable tracing at this level.",
                                                                                                                              "type": "object",
                                                                                                                              "additionalProperties": false,
                                                                                                                              "properties": {
                                                                                                                                "enabled": {
                                                                                                                                  "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                  "type": [
                                                                                                                                    "number",
                                                                                                                                    "string"
                                                                                                                                  ],
                                                                                                                                  "enum": [
                                                                                                                                    "on",
                                                                                                                                    "off",
                                                                                                                                    "var_based"
                                                                                                                                  ]
                                                                                                                                },
                                                                                                                                "var": {
                                                                                                                                  "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                  "type": [
                                                                                                                                    "number",
                                                                                                                                    "string"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "spanAttributes": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "name": {
                                                                                                                                    "description": "name of attribute",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "value": {
                                                                                                                                    "description": "value of attribute, can contain variables",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  }
                                                                                                                                }
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "spanName": {
                                                                                                                              "description": "Specify name of span",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "enableSocketsTracing": {
                                                                                                                              "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                              "type": "boolean"
                                                                                                                            }
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "params": {
                                                                                                                          "description": "Specifies extra parameters for the actions.",
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": true
                                                                                                                        },
                                                                                                                        "requiredChildOneOf": {
                                                                                                                          "description": "Specifies unverifed action check",
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "decision": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ],
                                                                                                                              "enum": [
                                                                                                                                "BLOCK",
                                                                                                                                "WARN"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "onlyCheckers": {
                                                                                                                              "type": "boolean"
                                                                                                                            },
                                                                                                                            "include": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "exclude": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "string"
                                                                                                                              }
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "decision"
                                                                                                                          ],
                                                                                                                          "allOf": [
                                                                                                                            {
                                                                                                                              "if": {
                                                                                                                                "type": "object",
                                                                                                                                "required": [
                                                                                                                                  "exclude"
                                                                                                                                ],
                                                                                                                                "properties": {
                                                                                                                                  "exclude": {}
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "then": {
                                                                                                                                "not": {
                                                                                                                                  "required": [
                                                                                                                                    "include"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              }
                                                                                                                            },
                                                                                                                            {
                                                                                                                              "if": {
                                                                                                                                "type": "object",
                                                                                                                                "required": [
                                                                                                                                  "include"
                                                                                                                                ],
                                                                                                                                "properties": {
                                                                                                                                  "include": {}
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "then": {
                                                                                                                                "not": {
                                                                                                                                  "required": [
                                                                                                                                    "exclude"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              }
                                                                                                                            }
                                                                                                                          ]
                                                                                                                        },
                                                                                                                        "actions": {
                                                                                                                          "description": "Specifies a list of actions.",
                                                                                                                          "type": "array",
                                                                                                                          "items": {
                                                                                                                            "type": "object",
                                                                                                                            "additionalProperties": false,
                                                                                                                            "properties": {
                                                                                                                              "action": {
                                                                                                                                "description": "Specifies an action to perform",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ],
                                                                                                                                "enum": [
                                                                                                                                  "ASN1ContentExtractor",
                                                                                                                                  "Base64Decode",
                                                                                                                                  "ConditionChecker",
                                                                                                                                  "CheckDataSize",
                                                                                                                                  "CheckMimeType",
                                                                                                                                  "JsonPathExtract",
                                                                                                                                  "JsonPathExtractToVars",
                                                                                                                                  "JsonValidation",
                                                                                                                                  "XsdValidation",
                                                                                                                                  "PostFormDataToFlateJson",
                                                                                                                                  "MultipartExtract",
                                                                                                                                  "SetMessageFromVar",
                                                                                                                                  "SetVarFromMessage",
                                                                                                                                  "JwsToJson",
                                                                                                                                  "XPathExtract",
                                                                                                                                  "XPathExtractToVars",
                                                                                                                                  "SharedMapDeleter",
                                                                                                                                  "SharedMapRemover",
                                                                                                                                  "SharedMapSetter",
                                                                                                                                  "SharedMapGetter",
                                                                                                                                  "RandomNumberToVar",
                                                                                                                                  "VarsToSharedMap",
                                                                                                                                  "SharedMapToVars",
                                                                                                                                  "AntivirusFileChecker",
                                                                                                                                  "MtomExtractor",
                                                                                                                                  "JsonTransformer",
                                                                                                                                  "SetVar",
                                                                                                                                  "GraphQLRequestValidation",
                                                                                                                                  "ProtobufValidation",
                                                                                                                                  "OpenApiValidation",
                                                                                                                                  "DelimiterSplitter",
                                                                                                                                  "VarsToFile",
                                                                                                                                  "FileToVars",
                                                                                                                                  "WsdlValidation",
                                                                                                                                  "HttpFilter",
                                                                                                                                  "ProtobufToJson",
                                                                                                                                  "FilterMds",
                                                                                                                                  "OcspSignValidator",
                                                                                                                                  "OcspToJson",
                                                                                                                                  "ASN1ToJson",
                                                                                                                                  "XmlTransformer",
                                                                                                                                  "UrlEncode",
                                                                                                                                  "UrlDecodeUni",
                                                                                                                                  "UrlDecode",
                                                                                                                                  "HexDecode",
                                                                                                                                  "HexEncode",
                                                                                                                                  "ToLowerCase",
                                                                                                                                  "ToUpperCase",
                                                                                                                                  "Utf8ToUnicode",
                                                                                                                                  "Trim",
                                                                                                                                  "ICAPFileChecker",
                                                                                                                                  "MessageToFile",
                                                                                                                                  "MultipartFormGenerateFromVar",
                                                                                                                                  "HttpSender",
                                                                                                                                  "MessageAccumulator",
                                                                                                                                  "MessageFromAccumulator",
                                                                                                                                  "MessageFromPattern",
                                                                                                                                  "MultipartFormGenerateFromMessage",
                                                                                                                                  "JsonPatchMessage",
                                                                                                                                  "JsonPatchVar",
                                                                                                                                  "DigestFromMessage",
                                                                                                                                  "Base64Encode",
                                                                                                                                  "HMac",
                                                                                                                                  "FileToMessage",
                                                                                                                                  "JwtVerifier",
                                                                                                                                  "CharsetChecker",
                                                                                                                                  "LdapSearch",
                                                                                                                                  "UnicodeDecode",
                                                                                                                                  "MessageMapper",
                                                                                                                                  "SimpleRateLimiter",
                                                                                                                                  "EventSourceConverter",
                                                                                                                                  "LazySessionTimeChecker",
                                                                                                                                  "CalculateMessageProperties"
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "id": {
                                                                                                                                "description": "An identificator of action",
                                                                                                                                "type": [
                                                                                                                                  "number",
                                                                                                                                  "string"
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "conditions": {
                                                                                                                                "description": "Specifies the conditions for performina an action.",
                                                                                                                                "type": "array",
                                                                                                                                "items": {
                                                                                                                                  "type": "object",
                                                                                                                                  "additionalProperties": false,
                                                                                                                                  "properties": {
                                                                                                                                    "var": {
                                                                                                                                      "description": "Specifies a variable to check.",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "operator": {
                                                                                                                                      "description": "Specifies an operator.",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ],
                                                                                                                                      "enum": [
                                                                                                                                        "=",
                                                                                                                                        "!=",
                                                                                                                                        "<=",
                                                                                                                                        ">=",
                                                                                                                                        ">",
                                                                                                                                        "<",
                                                                                                                                        "in",
                                                                                                                                        "not_in",
                                                                                                                                        "~",
                                                                                                                                        "~*",
                                                                                                                                        "!~",
                                                                                                                                        "!~*",
                                                                                                                                        "ip_range",
                                                                                                                                        "!ip_range",
                                                                                                                                        "dn_mask",
                                                                                                                                        "!dn_mask"
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "val": {
                                                                                                                                      "description": "Specifies a value to check.",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "required": [
                                                                                                                                    "var",
                                                                                                                                    "operator",
                                                                                                                                    "val"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "trace_config": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "enableAllActions": {
                                                                                                                                    "description": "enable tracing of all actions in chains",
                                                                                                                                    "type": "boolean"
                                                                                                                                  },
                                                                                                                                  "enableAllChains": {
                                                                                                                                    "description": "enable tracing of all actions in child chains",
                                                                                                                                    "type": "boolean"
                                                                                                                                  },
                                                                                                                                  "mode": {
                                                                                                                                    "description": "Enable or disable tracing at this level.",
                                                                                                                                    "type": "object",
                                                                                                                                    "additionalProperties": false,
                                                                                                                                    "properties": {
                                                                                                                                      "enabled": {
                                                                                                                                        "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                        "type": [
                                                                                                                                          "number",
                                                                                                                                          "string"
                                                                                                                                        ],
                                                                                                                                        "enum": [
                                                                                                                                          "on",
                                                                                                                                          "off",
                                                                                                                                          "var_based"
                                                                                                                                        ]
                                                                                                                                      },
                                                                                                                                      "var": {
                                                                                                                                        "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                        "type": [
                                                                                                                                          "number",
                                                                                                                                          "string"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "spanAttributes": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "name": {
                                                                                                                                          "description": "name of attribute",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "value": {
                                                                                                                                          "description": "value of attribute, can contain variables",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        }
                                                                                                                                      }
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "spanName": {
                                                                                                                                    "description": "Specify name of span",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "enableSocketsTracing": {
                                                                                                                                    "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                                    "type": "boolean"
                                                                                                                                  }
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "params": {
                                                                                                                                "description": "Specifies extra parameters for the actions.",
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": true
                                                                                                                              },
                                                                                                                              "requiredChildOneOf": {
                                                                                                                                "description": "Specifies unverifed action check",
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "decision": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ],
                                                                                                                                    "enum": [
                                                                                                                                      "BLOCK",
                                                                                                                                      "WARN"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "onlyCheckers": {
                                                                                                                                    "type": "boolean"
                                                                                                                                  },
                                                                                                                                  "include": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "exclude": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "string"
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "decision"
                                                                                                                                ],
                                                                                                                                "allOf": [
                                                                                                                                  {
                                                                                                                                    "if": {
                                                                                                                                      "type": "object",
                                                                                                                                      "required": [
                                                                                                                                        "exclude"
                                                                                                                                      ],
                                                                                                                                      "properties": {
                                                                                                                                        "exclude": {}
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "then": {
                                                                                                                                      "not": {
                                                                                                                                        "required": [
                                                                                                                                          "include"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  {
                                                                                                                                    "if": {
                                                                                                                                      "type": "object",
                                                                                                                                      "required": [
                                                                                                                                        "include"
                                                                                                                                      ],
                                                                                                                                      "properties": {
                                                                                                                                        "include": {}
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "then": {
                                                                                                                                      "not": {
                                                                                                                                        "required": [
                                                                                                                                          "exclude"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                ]
                                                                                                                              },
                                                                                                                              "actions": {
                                                                                                                                "description": "Specifies a list of actions.",
                                                                                                                                "type": "array",
                                                                                                                                "items": {
                                                                                                                                  "type": "object",
                                                                                                                                  "additionalProperties": false,
                                                                                                                                  "properties": {
                                                                                                                                    "action": {
                                                                                                                                      "description": "Specifies an action to perform",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ],
                                                                                                                                      "enum": [
                                                                                                                                        "ASN1ContentExtractor",
                                                                                                                                        "Base64Decode",
                                                                                                                                        "ConditionChecker",
                                                                                                                                        "CheckDataSize",
                                                                                                                                        "CheckMimeType",
                                                                                                                                        "JsonPathExtract",
                                                                                                                                        "JsonPathExtractToVars",
                                                                                                                                        "JsonValidation",
                                                                                                                                        "XsdValidation",
                                                                                                                                        "PostFormDataToFlateJson",
                                                                                                                                        "MultipartExtract",
                                                                                                                                        "SetMessageFromVar",
                                                                                                                                        "SetVarFromMessage",
                                                                                                                                        "JwsToJson",
                                                                                                                                        "XPathExtract",
                                                                                                                                        "XPathExtractToVars",
                                                                                                                                        "SharedMapDeleter",
                                                                                                                                        "SharedMapRemover",
                                                                                                                                        "SharedMapSetter",
                                                                                                                                        "SharedMapGetter",
                                                                                                                                        "RandomNumberToVar",
                                                                                                                                        "VarsToSharedMap",
                                                                                                                                        "SharedMapToVars",
                                                                                                                                        "AntivirusFileChecker",
                                                                                                                                        "MtomExtractor",
                                                                                                                                        "JsonTransformer",
                                                                                                                                        "SetVar",
                                                                                                                                        "GraphQLRequestValidation",
                                                                                                                                        "ProtobufValidation",
                                                                                                                                        "OpenApiValidation",
                                                                                                                                        "DelimiterSplitter",
                                                                                                                                        "VarsToFile",
                                                                                                                                        "FileToVars",
                                                                                                                                        "WsdlValidation",
                                                                                                                                        "HttpFilter",
                                                                                                                                        "ProtobufToJson",
                                                                                                                                        "FilterMds",
                                                                                                                                        "OcspSignValidator",
                                                                                                                                        "OcspToJson",
                                                                                                                                        "ASN1ToJson",
                                                                                                                                        "XmlTransformer",
                                                                                                                                        "UrlEncode",
                                                                                                                                        "UrlDecodeUni",
                                                                                                                                        "UrlDecode",
                                                                                                                                        "HexDecode",
                                                                                                                                        "HexEncode",
                                                                                                                                        "ToLowerCase",
                                                                                                                                        "ToUpperCase",
                                                                                                                                        "Utf8ToUnicode",
                                                                                                                                        "Trim",
                                                                                                                                        "ICAPFileChecker",
                                                                                                                                        "MessageToFile",
                                                                                                                                        "MultipartFormGenerateFromVar",
                                                                                                                                        "HttpSender",
                                                                                                                                        "MessageAccumulator",
                                                                                                                                        "MessageFromAccumulator",
                                                                                                                                        "MessageFromPattern",
                                                                                                                                        "MultipartFormGenerateFromMessage",
                                                                                                                                        "JsonPatchMessage",
                                                                                                                                        "JsonPatchVar",
                                                                                                                                        "DigestFromMessage",
                                                                                                                                        "Base64Encode",
                                                                                                                                        "HMac",
                                                                                                                                        "FileToMessage",
                                                                                                                                        "JwtVerifier",
                                                                                                                                        "CharsetChecker",
                                                                                                                                        "LdapSearch",
                                                                                                                                        "UnicodeDecode",
                                                                                                                                        "MessageMapper",
                                                                                                                                        "SimpleRateLimiter",
                                                                                                                                        "EventSourceConverter",
                                                                                                                                        "LazySessionTimeChecker",
                                                                                                                                        "CalculateMessageProperties"
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "id": {
                                                                                                                                      "description": "An identificator of action",
                                                                                                                                      "type": [
                                                                                                                                        "number",
                                                                                                                                        "string"
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "conditions": {
                                                                                                                                      "description": "Specifies the conditions for performina an action.",
                                                                                                                                      "type": "array",
                                                                                                                                      "items": {
                                                                                                                                        "type": "object",
                                                                                                                                        "additionalProperties": false,
                                                                                                                                        "properties": {
                                                                                                                                          "var": {
                                                                                                                                            "description": "Specifies a variable to check.",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "operator": {
                                                                                                                                            "description": "Specifies an operator.",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ],
                                                                                                                                            "enum": [
                                                                                                                                              "=",
                                                                                                                                              "!=",
                                                                                                                                              "<=",
                                                                                                                                              ">=",
                                                                                                                                              ">",
                                                                                                                                              "<",
                                                                                                                                              "in",
                                                                                                                                              "not_in",
                                                                                                                                              "~",
                                                                                                                                              "~*",
                                                                                                                                              "!~",
                                                                                                                                              "!~*",
                                                                                                                                              "ip_range",
                                                                                                                                              "!ip_range",
                                                                                                                                              "dn_mask",
                                                                                                                                              "!dn_mask"
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "val": {
                                                                                                                                            "description": "Specifies a value to check.",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "required": [
                                                                                                                                          "var",
                                                                                                                                          "operator",
                                                                                                                                          "val"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "trace_config": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "enableAllActions": {
                                                                                                                                          "description": "enable tracing of all actions in chains",
                                                                                                                                          "type": "boolean"
                                                                                                                                        },
                                                                                                                                        "enableAllChains": {
                                                                                                                                          "description": "enable tracing of all actions in child chains",
                                                                                                                                          "type": "boolean"
                                                                                                                                        },
                                                                                                                                        "mode": {
                                                                                                                                          "description": "Enable or disable tracing at this level.",
                                                                                                                                          "type": "object",
                                                                                                                                          "additionalProperties": false,
                                                                                                                                          "properties": {
                                                                                                                                            "enabled": {
                                                                                                                                              "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                              "type": [
                                                                                                                                                "number",
                                                                                                                                                "string"
                                                                                                                                              ],
                                                                                                                                              "enum": [
                                                                                                                                                "on",
                                                                                                                                                "off",
                                                                                                                                                "var_based"
                                                                                                                                              ]
                                                                                                                                            },
                                                                                                                                            "var": {
                                                                                                                                              "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                              "type": [
                                                                                                                                                "number",
                                                                                                                                                "string"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "spanAttributes": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "name": {
                                                                                                                                                "description": "name of attribute",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "value": {
                                                                                                                                                "description": "value of attribute, can contain variables",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              }
                                                                                                                                            }
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "spanName": {
                                                                                                                                          "description": "Specify name of span",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "enableSocketsTracing": {
                                                                                                                                          "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                                          "type": "boolean"
                                                                                                                                        }
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "params": {
                                                                                                                                      "description": "Specifies extra parameters for the actions.",
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": true
                                                                                                                                    },
                                                                                                                                    "requiredChildOneOf": {
                                                                                                                                      "description": "Specifies unverifed action check",
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "decision": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ],
                                                                                                                                          "enum": [
                                                                                                                                            "BLOCK",
                                                                                                                                            "WARN"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "onlyCheckers": {
                                                                                                                                          "type": "boolean"
                                                                                                                                        },
                                                                                                                                        "include": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "exclude": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "string"
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "decision"
                                                                                                                                      ],
                                                                                                                                      "allOf": [
                                                                                                                                        {
                                                                                                                                          "if": {
                                                                                                                                            "type": "object",
                                                                                                                                            "required": [
                                                                                                                                              "exclude"
                                                                                                                                            ],
                                                                                                                                            "properties": {
                                                                                                                                              "exclude": {}
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "then": {
                                                                                                                                            "not": {
                                                                                                                                              "required": [
                                                                                                                                                "include"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                          "if": {
                                                                                                                                            "type": "object",
                                                                                                                                            "required": [
                                                                                                                                              "include"
                                                                                                                                            ],
                                                                                                                                            "properties": {
                                                                                                                                              "include": {}
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "then": {
                                                                                                                                            "not": {
                                                                                                                                              "required": [
                                                                                                                                                "exclude"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      ]
                                                                                                                                    },
                                                                                                                                    "actions": {
                                                                                                                                      "description": "Specifies a list of actions.",
                                                                                                                                      "type": "array",
                                                                                                                                      "items": {
                                                                                                                                        "type": "object",
                                                                                                                                        "additionalProperties": false,
                                                                                                                                        "properties": {
                                                                                                                                          "action": {
                                                                                                                                            "description": "Specifies an action to perform",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ],
                                                                                                                                            "enum": [
                                                                                                                                              "ASN1ContentExtractor",
                                                                                                                                              "Base64Decode",
                                                                                                                                              "ConditionChecker",
                                                                                                                                              "CheckDataSize",
                                                                                                                                              "CheckMimeType",
                                                                                                                                              "JsonPathExtract",
                                                                                                                                              "JsonPathExtractToVars",
                                                                                                                                              "JsonValidation",
                                                                                                                                              "XsdValidation",
                                                                                                                                              "PostFormDataToFlateJson",
                                                                                                                                              "MultipartExtract",
                                                                                                                                              "SetMessageFromVar",
                                                                                                                                              "SetVarFromMessage",
                                                                                                                                              "JwsToJson",
                                                                                                                                              "XPathExtract",
                                                                                                                                              "XPathExtractToVars",
                                                                                                                                              "SharedMapDeleter",
                                                                                                                                              "SharedMapRemover",
                                                                                                                                              "SharedMapSetter",
                                                                                                                                              "SharedMapGetter",
                                                                                                                                              "RandomNumberToVar",
                                                                                                                                              "VarsToSharedMap",
                                                                                                                                              "SharedMapToVars",
                                                                                                                                              "AntivirusFileChecker",
                                                                                                                                              "MtomExtractor",
                                                                                                                                              "JsonTransformer",
                                                                                                                                              "SetVar",
                                                                                                                                              "GraphQLRequestValidation",
                                                                                                                                              "ProtobufValidation",
                                                                                                                                              "OpenApiValidation",
                                                                                                                                              "DelimiterSplitter",
                                                                                                                                              "VarsToFile",
                                                                                                                                              "FileToVars",
                                                                                                                                              "WsdlValidation",
                                                                                                                                              "HttpFilter",
                                                                                                                                              "ProtobufToJson",
                                                                                                                                              "FilterMds",
                                                                                                                                              "OcspSignValidator",
                                                                                                                                              "OcspToJson",
                                                                                                                                              "ASN1ToJson",
                                                                                                                                              "XmlTransformer",
                                                                                                                                              "UrlEncode",
                                                                                                                                              "UrlDecodeUni",
                                                                                                                                              "UrlDecode",
                                                                                                                                              "HexDecode",
                                                                                                                                              "HexEncode",
                                                                                                                                              "ToLowerCase",
                                                                                                                                              "ToUpperCase",
                                                                                                                                              "Utf8ToUnicode",
                                                                                                                                              "Trim",
                                                                                                                                              "ICAPFileChecker",
                                                                                                                                              "MessageToFile",
                                                                                                                                              "MultipartFormGenerateFromVar",
                                                                                                                                              "HttpSender",
                                                                                                                                              "MessageAccumulator",
                                                                                                                                              "MessageFromAccumulator",
                                                                                                                                              "MessageFromPattern",
                                                                                                                                              "MultipartFormGenerateFromMessage",
                                                                                                                                              "JsonPatchMessage",
                                                                                                                                              "JsonPatchVar",
                                                                                                                                              "DigestFromMessage",
                                                                                                                                              "Base64Encode",
                                                                                                                                              "HMac",
                                                                                                                                              "FileToMessage",
                                                                                                                                              "JwtVerifier",
                                                                                                                                              "CharsetChecker",
                                                                                                                                              "LdapSearch",
                                                                                                                                              "UnicodeDecode",
                                                                                                                                              "MessageMapper",
                                                                                                                                              "SimpleRateLimiter",
                                                                                                                                              "EventSourceConverter",
                                                                                                                                              "LazySessionTimeChecker",
                                                                                                                                              "CalculateMessageProperties"
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "id": {
                                                                                                                                            "description": "An identificator of action",
                                                                                                                                            "type": [
                                                                                                                                              "number",
                                                                                                                                              "string"
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "conditions": {
                                                                                                                                            "description": "Specifies the conditions for performina an action.",
                                                                                                                                            "type": "array",
                                                                                                                                            "items": {
                                                                                                                                              "type": "object",
                                                                                                                                              "additionalProperties": false,
                                                                                                                                              "properties": {
                                                                                                                                                "var": {
                                                                                                                                                  "description": "Specifies a variable to check.",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ]
                                                                                                                                                },
                                                                                                                                                "operator": {
                                                                                                                                                  "description": "Specifies an operator.",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ],
                                                                                                                                                  "enum": [
                                                                                                                                                    "=",
                                                                                                                                                    "!=",
                                                                                                                                                    "<=",
                                                                                                                                                    ">=",
                                                                                                                                                    ">",
                                                                                                                                                    "<",
                                                                                                                                                    "in",
                                                                                                                                                    "not_in",
                                                                                                                                                    "~",
                                                                                                                                                    "~*",
                                                                                                                                                    "!~",
                                                                                                                                                    "!~*",
                                                                                                                                                    "ip_range",
                                                                                                                                                    "!ip_range",
                                                                                                                                                    "dn_mask",
                                                                                                                                                    "!dn_mask"
                                                                                                                                                  ]
                                                                                                                                                },
                                                                                                                                                "val": {
                                                                                                                                                  "description": "Specifies a value to check.",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "required": [
                                                                                                                                                "var",
                                                                                                                                                "operator",
                                                                                                                                                "val"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "trace_config": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "enableAllActions": {
                                                                                                                                                "description": "enable tracing of all actions in chains",
                                                                                                                                                "type": "boolean"
                                                                                                                                              },
                                                                                                                                              "enableAllChains": {
                                                                                                                                                "description": "enable tracing of all actions in child chains",
                                                                                                                                                "type": "boolean"
                                                                                                                                              },
                                                                                                                                              "mode": {
                                                                                                                                                "description": "Enable or disable tracing at this level.",
                                                                                                                                                "type": "object",
                                                                                                                                                "additionalProperties": false,
                                                                                                                                                "properties": {
                                                                                                                                                  "enabled": {
                                                                                                                                                    "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                                                                                                                                    "type": [
                                                                                                                                                      "number",
                                                                                                                                                      "string"
                                                                                                                                                    ],
                                                                                                                                                    "enum": [
                                                                                                                                                      "on",
                                                                                                                                                      "off",
                                                                                                                                                      "var_based"
                                                                                                                                                    ]
                                                                                                                                                  },
                                                                                                                                                  "var": {
                                                                                                                                                    "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                                                                                                                                    "type": [
                                                                                                                                                      "number",
                                                                                                                                                      "string"
                                                                                                                                                    ]
                                                                                                                                                  }
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "spanAttributes": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "name": {
                                                                                                                                                      "description": "name of attribute",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "value": {
                                                                                                                                                      "description": "value of attribute, can contain variables",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    }
                                                                                                                                                  }
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "spanName": {
                                                                                                                                                "description": "Specify name of span",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "enableSocketsTracing": {
                                                                                                                                                "description": "Enable or disable socket tracing, by default enabled",
                                                                                                                                                "type": "boolean"
                                                                                                                                              }
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "params": {
                                                                                                                                            "description": "Specifies extra parameters for the actions.",
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": true
                                                                                                                                          },
                                                                                                                                          "requiredChildOneOf": {
                                                                                                                                            "description": "Specifies unverifed action check",
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "decision": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ],
                                                                                                                                                "enum": [
                                                                                                                                                  "BLOCK",
                                                                                                                                                  "WARN"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "onlyCheckers": {
                                                                                                                                                "type": "boolean"
                                                                                                                                              },
                                                                                                                                              "include": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "exclude": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "string"
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "decision"
                                                                                                                                            ],
                                                                                                                                            "allOf": [
                                                                                                                                              {
                                                                                                                                                "if": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "required": [
                                                                                                                                                    "exclude"
                                                                                                                                                  ],
                                                                                                                                                  "properties": {
                                                                                                                                                    "exclude": {}
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "then": {
                                                                                                                                                  "not": {
                                                                                                                                                    "required": [
                                                                                                                                                      "include"
                                                                                                                                                    ]
                                                                                                                                                  }
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              {
                                                                                                                                                "if": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "required": [
                                                                                                                                                    "include"
                                                                                                                                                  ],
                                                                                                                                                  "properties": {
                                                                                                                                                    "include": {}
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "then": {
                                                                                                                                                  "not": {
                                                                                                                                                    "required": [
                                                                                                                                                      "exclude"
                                                                                                                                                    ]
                                                                                                                                                  }
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            ]
                                                                                                                                          },
                                                                                                                                          "actions": {
                                                                                                                                            "description": "Specifies a list of actions.",
                                                                                                                                            "type": "array",
                                                                                                                                            "items": {
                                                                                                                                              "type": "object",
                                                                                                                                              "additionalProperties": false,
                                                                                                                                              "properties": {
                                                                                                                                                "action": {
                                                                                                                                                  "description": "Specifies an action to perform",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ],
                                                                                                                                                  "enum": [
                                                                                                                                                    "ASN1ContentExtractor",
                                                                                                                                                    "Base64Decode",
                                                                                                                                                    "ConditionChecker",
                                                                                                                                                    "CheckDataSize",
                                                                                                                                                    "CheckMimeType",
                                                                                                                                                    "JsonPathExtract",
                                                                                                                                                    "JsonPathExtractToVars",
                                                                                                                                                    "JsonValidation",
                                                                                                                                                    "XsdValidation",
                                                                                                                                                    "PostFormDataToFlateJson",
                                                                                                                                                    "MultipartExtract",
                                                                                                                                                    "SetMessageFromVar",
                                                                                                                                                    "SetVarFromMessage",
                                                                                                                                                    "JwsToJson",
                                                                                                                                                    "XPathExtract",
                                                                                                                                                    "XPathExtractToVars",
                                                                                                                                                    "SharedMapDeleter",
                                                                                                                                                    "SharedMapRemover",
                                                                                                                                                    "SharedMapSetter",
                                                                                                                                                    "SharedMapGetter",
                                                                                                                                                    "RandomNumberToVar",
                                                                                                                                                    "VarsToSharedMap",
                                                                                                                                                    "SharedMapToVars",
                                                                                                                                                    "AntivirusFileChecker",
                                                                                                                                                    "MtomExtractor",
                                                                                                                                                    "JsonTransformer",
                                                                                                                                                    "SetVar",
                                                                                                                                                    "GraphQLRequestValidation",
                                                                                                                                                    "ProtobufValidation",
                                                                                                                                                    "OpenApiValidation",
                                                                                                                                                    "DelimiterSplitter",
                                                                                                                                                    "VarsToFile",
                                                                                                                                                    "FileToVars",
                                                                                                                                                    "WsdlValidation",
                                                                                                                                                    "HttpFilter",
                                                                                                                                                    "ProtobufToJson",
                                                                                                                                                    "FilterMds",
                                                                                                                                                    "OcspSignValidator",
                                                                                                                                                    "OcspToJson",
                                                                                                                                                    "ASN1ToJson",
                                                                                                                                                    "XmlTransformer",
                                                                                                                                                    "UrlEncode",
                                                                                                                                                    "UrlDecodeUni",
                                                                                                                                                    "UrlDecode",
                                                                                                                                                    "HexDecode",
                                                                                                                                                    "HexEncode",
                                                                                                                                                    "ToLowerCase",
                                                                                                                                                    "ToUpperCase",
                                                                                                                                                    "Utf8ToUnicode",
                                                                                                                                                    "Trim",
                                                                                                                                                    "ICAPFileChecker",
                                                                                                                                                    "MessageToFile",
                                                                                                                                                    "MultipartFormGenerateFromVar",
                                                                                                                                                    "HttpSender",
                                                                                                                                                    "MessageAccumulator",
                                                                                                                                                    "MessageFromAccumulator",
                                                                                                                                                    "MessageFromPattern",
                                                                                                                                                    "MultipartFormGenerateFromMessage",
                                                                                                                                                    "JsonPatchMessage",
                                                                                                                                                    "JsonPatchVar",
                                                                                                                                                    "DigestFromMessage",
                                                                                                                                                    "Base64Encode",
                                                                                                                                                    "HMac",
                                                                                                                                                    "FileToMessage",
                                                                                                                                                    "JwtVerifier",
                                                                                                                                                    "CharsetChecker",
                                                                                                                                                    "LdapSearch",
                                                                                                                                                    "UnicodeDecode",
                                                                                                                                                    "MessageMapper",
                                                                                                                                                    "SimpleRateLimiter",
                                                                                                                                                    "EventSourceConverter",
                                                                                                                                                    "LazySessionTimeChecker",
                                                                                                                                                    "CalculateMessageProperties"
                                                                                                                                                  ]
                                                                                                                                                },
                                                                                                                                                "id": {
                                                                                                                                                  "description": "An identificator of action",
                                                                                                                                                  "type": [
                                                                                                                                                    "number",
                                                                                                                                                    "string"
                                                                                                                                                  ]
                                                                                                                                                },
                                                                                                                                                "conditions": {
                                                                                                                                                  "description": "Specifies the conditions for performina an action.",
                                                                                                                                                  "type": "array",
                                                                                                                                                  "items": {
                                                                                                                                                    "type": "object",
                                                                                                                                                    "additionalProperties": false,
                                                                                                                                                    "properties": {
                                                                                                                                                      "var": {
                                                                                                                                                        "description": "Specifies a variable to check.",
                                                                                                                                                        "type": [
                                                                                                                                                          "number",
                                                                                                                                                          "string"
                                                                                                                                                        ]
                                                                                                                                                      },
                                                                                                                                                      "operator": {
                                                                                                                                                        "description": "Specifies an operator.",
                                                                                                                                                        "type": [
                                                                                                                                                          "number",
                                                                                                                                                          "string"
                                                                                                                                                        ],
                                                                                                                                                        "enum": [
                                                                                                                                                          "=",
                                                                                                                                                          "!=",
                                                                                                                                                          "<=",
                                                                                                                                                          ">=",
                                                                                                                                                          ">",
                                                                                                                                                          "<",
                                                                                                                                                          "in",
                                                                                                                                                          "not_in",
                                                                                                                                                          "~",
                                                                                                                                                          "~*",
                                                                                                                                                          "!~",
                                                                                                                                                          "!~*",
                                                                                                                                                          "ip_range",
                                                                                                                                                          "!ip_range",
                                                                                                                                                          "dn_mask",
                                                                                                                                                          "!dn_mask"
                                                                                                                                                        ]
                                                                                                                                                      },
                                                                                                                                                      "val": {
                                                                                                                                                        "description": "Specifies a value to check.",
                                                                                                                                                        "type": [
                                                                                                                                                          "number",
                                                                                                                                                          "string"
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    },
                                                                                                                                                    "required": [
                                                                                                                                                      "var",
                                                                                                                                                      "operator",
                                                                                                                                                      "val"
                                                                                                                                                    ]
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "params": {
                                                                                                                                                  "description": "Specifies extra parameters for the actions.",
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": true
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "required": [
                                                                                                                                                "action"
                                                                                                                                              ]
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "audit": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "enabled": {
                                                                                                                                                "type": "boolean"
                                                                                                                                              },
                                                                                                                                              "events": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "name": {
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "message": {
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "conditions": {
                                                                                                                                                      "type": "array",
                                                                                                                                                      "items": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "additionalProperties": false,
                                                                                                                                                        "properties": {
                                                                                                                                                          "var": {
                                                                                                                                                            "description": "Specifies a variable to check.",
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "operator": {
                                                                                                                                                            "description": "Specifies an operator.",
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ],
                                                                                                                                                            "enum": [
                                                                                                                                                              "=",
                                                                                                                                                              "!=",
                                                                                                                                                              "<=",
                                                                                                                                                              ">=",
                                                                                                                                                              ">",
                                                                                                                                                              "<",
                                                                                                                                                              "in",
                                                                                                                                                              "not_in",
                                                                                                                                                              "~",
                                                                                                                                                              "~*",
                                                                                                                                                              "!~",
                                                                                                                                                              "!~*",
                                                                                                                                                              "ip_range",
                                                                                                                                                              "!ip_range",
                                                                                                                                                              "dn_mask",
                                                                                                                                                              "!dn_mask"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "val": {
                                                                                                                                                            "description": "Specifies a value to check.",
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          }
                                                                                                                                                        },
                                                                                                                                                        "required": [
                                                                                                                                                          "var",
                                                                                                                                                          "operator",
                                                                                                                                                          "val"
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    },
                                                                                                                                                    "fields": {
                                                                                                                                                      "type": "array",
                                                                                                                                                      "items": {
                                                                                                                                                        "type": "object",
                                                                                                                                                        "additionalProperties": false,
                                                                                                                                                        "properties": {
                                                                                                                                                          "key": {
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          },
                                                                                                                                                          "val": {
                                                                                                                                                            "type": [
                                                                                                                                                              "number",
                                                                                                                                                              "string"
                                                                                                                                                            ]
                                                                                                                                                          }
                                                                                                                                                        },
                                                                                                                                                        "required": [
                                                                                                                                                          "key",
                                                                                                                                                          "val"
                                                                                                                                                        ]
                                                                                                                                                      }
                                                                                                                                                    }
                                                                                                                                                  },
                                                                                                                                                  "required": [
                                                                                                                                                    "name",
                                                                                                                                                    "message"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "enabled"
                                                                                                                                            ],
                                                                                                                                            "allOf": [
                                                                                                                                              {
                                                                                                                                                "if": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "required": [
                                                                                                                                                    "enabled"
                                                                                                                                                  ],
                                                                                                                                                  "properties": {
                                                                                                                                                    "enabled": {
                                                                                                                                                      "const": false
                                                                                                                                                    }
                                                                                                                                                  }
                                                                                                                                                },
                                                                                                                                                "then": {
                                                                                                                                                  "required": []
                                                                                                                                                },
                                                                                                                                                "else": {
                                                                                                                                                  "required": [
                                                                                                                                                    "events"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "required": [
                                                                                                                                          "action"
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "audit": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "enabled": {
                                                                                                                                          "type": "boolean"
                                                                                                                                        },
                                                                                                                                        "events": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "name": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "message": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "conditions": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "var": {
                                                                                                                                                      "description": "Specifies a variable to check.",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "operator": {
                                                                                                                                                      "description": "Specifies an operator.",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ],
                                                                                                                                                      "enum": [
                                                                                                                                                        "=",
                                                                                                                                                        "!=",
                                                                                                                                                        "<=",
                                                                                                                                                        ">=",
                                                                                                                                                        ">",
                                                                                                                                                        "<",
                                                                                                                                                        "in",
                                                                                                                                                        "not_in",
                                                                                                                                                        "~",
                                                                                                                                                        "~*",
                                                                                                                                                        "!~",
                                                                                                                                                        "!~*",
                                                                                                                                                        "ip_range",
                                                                                                                                                        "!ip_range",
                                                                                                                                                        "dn_mask",
                                                                                                                                                        "!dn_mask"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "val": {
                                                                                                                                                      "description": "Specifies a value to check.",
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    }
                                                                                                                                                  },
                                                                                                                                                  "required": [
                                                                                                                                                    "var",
                                                                                                                                                    "operator",
                                                                                                                                                    "val"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              },
                                                                                                                                              "fields": {
                                                                                                                                                "type": "array",
                                                                                                                                                "items": {
                                                                                                                                                  "type": "object",
                                                                                                                                                  "additionalProperties": false,
                                                                                                                                                  "properties": {
                                                                                                                                                    "key": {
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    },
                                                                                                                                                    "val": {
                                                                                                                                                      "type": [
                                                                                                                                                        "number",
                                                                                                                                                        "string"
                                                                                                                                                      ]
                                                                                                                                                    }
                                                                                                                                                  },
                                                                                                                                                  "required": [
                                                                                                                                                    "key",
                                                                                                                                                    "val"
                                                                                                                                                  ]
                                                                                                                                                }
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "name",
                                                                                                                                              "message"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "enabled"
                                                                                                                                      ],
                                                                                                                                      "allOf": [
                                                                                                                                        {
                                                                                                                                          "if": {
                                                                                                                                            "type": "object",
                                                                                                                                            "required": [
                                                                                                                                              "enabled"
                                                                                                                                            ],
                                                                                                                                            "properties": {
                                                                                                                                              "enabled": {
                                                                                                                                                "const": false
                                                                                                                                              }
                                                                                                                                            }
                                                                                                                                          },
                                                                                                                                          "then": {
                                                                                                                                            "required": []
                                                                                                                                          },
                                                                                                                                          "else": {
                                                                                                                                            "required": [
                                                                                                                                              "events"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "required": [
                                                                                                                                    "action"
                                                                                                                                  ]
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "audit": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "enabled": {
                                                                                                                                    "type": "boolean"
                                                                                                                                  },
                                                                                                                                  "events": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "name": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "message": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "conditions": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "var": {
                                                                                                                                                "description": "Specifies a variable to check.",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "operator": {
                                                                                                                                                "description": "Specifies an operator.",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ],
                                                                                                                                                "enum": [
                                                                                                                                                  "=",
                                                                                                                                                  "!=",
                                                                                                                                                  "<=",
                                                                                                                                                  ">=",
                                                                                                                                                  ">",
                                                                                                                                                  "<",
                                                                                                                                                  "in",
                                                                                                                                                  "not_in",
                                                                                                                                                  "~",
                                                                                                                                                  "~*",
                                                                                                                                                  "!~",
                                                                                                                                                  "!~*",
                                                                                                                                                  "ip_range",
                                                                                                                                                  "!ip_range",
                                                                                                                                                  "dn_mask",
                                                                                                                                                  "!dn_mask"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "val": {
                                                                                                                                                "description": "Specifies a value to check.",
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "var",
                                                                                                                                              "operator",
                                                                                                                                              "val"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "fields": {
                                                                                                                                          "type": "array",
                                                                                                                                          "items": {
                                                                                                                                            "type": "object",
                                                                                                                                            "additionalProperties": false,
                                                                                                                                            "properties": {
                                                                                                                                              "key": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              },
                                                                                                                                              "val": {
                                                                                                                                                "type": [
                                                                                                                                                  "number",
                                                                                                                                                  "string"
                                                                                                                                                ]
                                                                                                                                              }
                                                                                                                                            },
                                                                                                                                            "required": [
                                                                                                                                              "key",
                                                                                                                                              "val"
                                                                                                                                            ]
                                                                                                                                          }
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "name",
                                                                                                                                        "message"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "enabled"
                                                                                                                                ],
                                                                                                                                "allOf": [
                                                                                                                                  {
                                                                                                                                    "if": {
                                                                                                                                      "type": "object",
                                                                                                                                      "required": [
                                                                                                                                        "enabled"
                                                                                                                                      ],
                                                                                                                                      "properties": {
                                                                                                                                        "enabled": {
                                                                                                                                          "const": false
                                                                                                                                        }
                                                                                                                                      }
                                                                                                                                    },
                                                                                                                                    "then": {
                                                                                                                                      "required": []
                                                                                                                                    },
                                                                                                                                    "else": {
                                                                                                                                      "required": [
                                                                                                                                        "events"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "required": [
                                                                                                                              "action"
                                                                                                                            ]
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "audit": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "enabled": {
                                                                                                                              "type": "boolean"
                                                                                                                            },
                                                                                                                            "events": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "name": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "message": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "conditions": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "var": {
                                                                                                                                          "description": "Specifies a variable to check.",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "operator": {
                                                                                                                                          "description": "Specifies an operator.",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ],
                                                                                                                                          "enum": [
                                                                                                                                            "=",
                                                                                                                                            "!=",
                                                                                                                                            "<=",
                                                                                                                                            ">=",
                                                                                                                                            ">",
                                                                                                                                            "<",
                                                                                                                                            "in",
                                                                                                                                            "not_in",
                                                                                                                                            "~",
                                                                                                                                            "~*",
                                                                                                                                            "!~",
                                                                                                                                            "!~*",
                                                                                                                                            "ip_range",
                                                                                                                                            "!ip_range",
                                                                                                                                            "dn_mask",
                                                                                                                                            "!dn_mask"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "val": {
                                                                                                                                          "description": "Specifies a value to check.",
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "var",
                                                                                                                                        "operator",
                                                                                                                                        "val"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  },
                                                                                                                                  "fields": {
                                                                                                                                    "type": "array",
                                                                                                                                    "items": {
                                                                                                                                      "type": "object",
                                                                                                                                      "additionalProperties": false,
                                                                                                                                      "properties": {
                                                                                                                                        "key": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        },
                                                                                                                                        "val": {
                                                                                                                                          "type": [
                                                                                                                                            "number",
                                                                                                                                            "string"
                                                                                                                                          ]
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "required": [
                                                                                                                                        "key",
                                                                                                                                        "val"
                                                                                                                                      ]
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "name",
                                                                                                                                  "message"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "enabled"
                                                                                                                          ],
                                                                                                                          "allOf": [
                                                                                                                            {
                                                                                                                              "if": {
                                                                                                                                "type": "object",
                                                                                                                                "required": [
                                                                                                                                  "enabled"
                                                                                                                                ],
                                                                                                                                "properties": {
                                                                                                                                  "enabled": {
                                                                                                                                    "const": false
                                                                                                                                  }
                                                                                                                                }
                                                                                                                              },
                                                                                                                              "then": {
                                                                                                                                "required": []
                                                                                                                              },
                                                                                                                              "else": {
                                                                                                                                "required": [
                                                                                                                                  "events"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            }
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "required": [
                                                                                                                        "action"
                                                                                                                      ]
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "audit": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "enabled": {
                                                                                                                        "type": "boolean"
                                                                                                                      },
                                                                                                                      "events": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "name": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "message": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "conditions": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "var": {
                                                                                                                                    "description": "Specifies a variable to check.",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "operator": {
                                                                                                                                    "description": "Specifies an operator.",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ],
                                                                                                                                    "enum": [
                                                                                                                                      "=",
                                                                                                                                      "!=",
                                                                                                                                      "<=",
                                                                                                                                      ">=",
                                                                                                                                      ">",
                                                                                                                                      "<",
                                                                                                                                      "in",
                                                                                                                                      "not_in",
                                                                                                                                      "~",
                                                                                                                                      "~*",
                                                                                                                                      "!~",
                                                                                                                                      "!~*",
                                                                                                                                      "ip_range",
                                                                                                                                      "!ip_range",
                                                                                                                                      "dn_mask",
                                                                                                                                      "!dn_mask"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "val": {
                                                                                                                                    "description": "Specifies a value to check.",
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "var",
                                                                                                                                  "operator",
                                                                                                                                  "val"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            },
                                                                                                                            "fields": {
                                                                                                                              "type": "array",
                                                                                                                              "items": {
                                                                                                                                "type": "object",
                                                                                                                                "additionalProperties": false,
                                                                                                                                "properties": {
                                                                                                                                  "key": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  },
                                                                                                                                  "val": {
                                                                                                                                    "type": [
                                                                                                                                      "number",
                                                                                                                                      "string"
                                                                                                                                    ]
                                                                                                                                  }
                                                                                                                                },
                                                                                                                                "required": [
                                                                                                                                  "key",
                                                                                                                                  "val"
                                                                                                                                ]
                                                                                                                              }
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "name",
                                                                                                                            "message"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "enabled"
                                                                                                                    ],
                                                                                                                    "allOf": [
                                                                                                                      {
                                                                                                                        "if": {
                                                                                                                          "type": "object",
                                                                                                                          "required": [
                                                                                                                            "enabled"
                                                                                                                          ],
                                                                                                                          "properties": {
                                                                                                                            "enabled": {
                                                                                                                              "const": false
                                                                                                                            }
                                                                                                                          }
                                                                                                                        },
                                                                                                                        "then": {
                                                                                                                          "required": []
                                                                                                                        },
                                                                                                                        "else": {
                                                                                                                          "required": [
                                                                                                                            "events"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      }
                                                                                                                    ]
                                                                                                                  }
                                                                                                                },
                                                                                                                "required": [
                                                                                                                  "action"
                                                                                                                ]
                                                                                                              }
                                                                                                            },
                                                                                                            "audit": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "enabled": {
                                                                                                                  "type": "boolean"
                                                                                                                },
                                                                                                                "events": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "name": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "message": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "conditions": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "var": {
                                                                                                                              "description": "Specifies a variable to check.",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "operator": {
                                                                                                                              "description": "Specifies an operator.",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ],
                                                                                                                              "enum": [
                                                                                                                                "=",
                                                                                                                                "!=",
                                                                                                                                "<=",
                                                                                                                                ">=",
                                                                                                                                ">",
                                                                                                                                "<",
                                                                                                                                "in",
                                                                                                                                "not_in",
                                                                                                                                "~",
                                                                                                                                "~*",
                                                                                                                                "!~",
                                                                                                                                "!~*",
                                                                                                                                "ip_range",
                                                                                                                                "!ip_range",
                                                                                                                                "dn_mask",
                                                                                                                                "!dn_mask"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "val": {
                                                                                                                              "description": "Specifies a value to check.",
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "var",
                                                                                                                            "operator",
                                                                                                                            "val"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      },
                                                                                                                      "fields": {
                                                                                                                        "type": "array",
                                                                                                                        "items": {
                                                                                                                          "type": "object",
                                                                                                                          "additionalProperties": false,
                                                                                                                          "properties": {
                                                                                                                            "key": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            },
                                                                                                                            "val": {
                                                                                                                              "type": [
                                                                                                                                "number",
                                                                                                                                "string"
                                                                                                                              ]
                                                                                                                            }
                                                                                                                          },
                                                                                                                          "required": [
                                                                                                                            "key",
                                                                                                                            "val"
                                                                                                                          ]
                                                                                                                        }
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "name",
                                                                                                                      "message"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "enabled"
                                                                                                              ],
                                                                                                              "allOf": [
                                                                                                                {
                                                                                                                  "if": {
                                                                                                                    "type": "object",
                                                                                                                    "required": [
                                                                                                                      "enabled"
                                                                                                                    ],
                                                                                                                    "properties": {
                                                                                                                      "enabled": {
                                                                                                                        "const": false
                                                                                                                      }
                                                                                                                    }
                                                                                                                  },
                                                                                                                  "then": {
                                                                                                                    "required": []
                                                                                                                  },
                                                                                                                  "else": {
                                                                                                                    "required": [
                                                                                                                      "events"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                }
                                                                                                              ]
                                                                                                            }
                                                                                                          },
                                                                                                          "required": [
                                                                                                            "action"
                                                                                                          ]
                                                                                                        }
                                                                                                      },
                                                                                                      "audit": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "enabled": {
                                                                                                            "type": "boolean"
                                                                                                          },
                                                                                                          "events": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "name": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "message": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "conditions": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "var": {
                                                                                                                        "description": "Specifies a variable to check.",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "operator": {
                                                                                                                        "description": "Specifies an operator.",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ],
                                                                                                                        "enum": [
                                                                                                                          "=",
                                                                                                                          "!=",
                                                                                                                          "<=",
                                                                                                                          ">=",
                                                                                                                          ">",
                                                                                                                          "<",
                                                                                                                          "in",
                                                                                                                          "not_in",
                                                                                                                          "~",
                                                                                                                          "~*",
                                                                                                                          "!~",
                                                                                                                          "!~*",
                                                                                                                          "ip_range",
                                                                                                                          "!ip_range",
                                                                                                                          "dn_mask",
                                                                                                                          "!dn_mask"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "val": {
                                                                                                                        "description": "Specifies a value to check.",
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "var",
                                                                                                                      "operator",
                                                                                                                      "val"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                },
                                                                                                                "fields": {
                                                                                                                  "type": "array",
                                                                                                                  "items": {
                                                                                                                    "type": "object",
                                                                                                                    "additionalProperties": false,
                                                                                                                    "properties": {
                                                                                                                      "key": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      },
                                                                                                                      "val": {
                                                                                                                        "type": [
                                                                                                                          "number",
                                                                                                                          "string"
                                                                                                                        ]
                                                                                                                      }
                                                                                                                    },
                                                                                                                    "required": [
                                                                                                                      "key",
                                                                                                                      "val"
                                                                                                                    ]
                                                                                                                  }
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "name",
                                                                                                                "message"
                                                                                                              ]
                                                                                                            }
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "enabled"
                                                                                                        ],
                                                                                                        "allOf": [
                                                                                                          {
                                                                                                            "if": {
                                                                                                              "type": "object",
                                                                                                              "required": [
                                                                                                                "enabled"
                                                                                                              ],
                                                                                                              "properties": {
                                                                                                                "enabled": {
                                                                                                                  "const": false
                                                                                                                }
                                                                                                              }
                                                                                                            },
                                                                                                            "then": {
                                                                                                              "required": []
                                                                                                            },
                                                                                                            "else": {
                                                                                                              "required": [
                                                                                                                "events"
                                                                                                              ]
                                                                                                            }
                                                                                                          }
                                                                                                        ]
                                                                                                      }
                                                                                                    },
                                                                                                    "required": [
                                                                                                      "action"
                                                                                                    ]
                                                                                                  }
                                                                                                },
                                                                                                "audit": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "enabled": {
                                                                                                      "type": "boolean"
                                                                                                    },
                                                                                                    "events": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "name": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "message": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "conditions": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "var": {
                                                                                                                  "description": "Specifies a variable to check.",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "operator": {
                                                                                                                  "description": "Specifies an operator.",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ],
                                                                                                                  "enum": [
                                                                                                                    "=",
                                                                                                                    "!=",
                                                                                                                    "<=",
                                                                                                                    ">=",
                                                                                                                    ">",
                                                                                                                    "<",
                                                                                                                    "in",
                                                                                                                    "not_in",
                                                                                                                    "~",
                                                                                                                    "~*",
                                                                                                                    "!~",
                                                                                                                    "!~*",
                                                                                                                    "ip_range",
                                                                                                                    "!ip_range",
                                                                                                                    "dn_mask",
                                                                                                                    "!dn_mask"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "val": {
                                                                                                                  "description": "Specifies a value to check.",
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "var",
                                                                                                                "operator",
                                                                                                                "val"
                                                                                                              ]
                                                                                                            }
                                                                                                          },
                                                                                                          "fields": {
                                                                                                            "type": "array",
                                                                                                            "items": {
                                                                                                              "type": "object",
                                                                                                              "additionalProperties": false,
                                                                                                              "properties": {
                                                                                                                "key": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                },
                                                                                                                "val": {
                                                                                                                  "type": [
                                                                                                                    "number",
                                                                                                                    "string"
                                                                                                                  ]
                                                                                                                }
                                                                                                              },
                                                                                                              "required": [
                                                                                                                "key",
                                                                                                                "val"
                                                                                                              ]
                                                                                                            }
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "name",
                                                                                                          "message"
                                                                                                        ]
                                                                                                      }
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "enabled"
                                                                                                  ],
                                                                                                  "allOf": [
                                                                                                    {
                                                                                                      "if": {
                                                                                                        "type": "object",
                                                                                                        "required": [
                                                                                                          "enabled"
                                                                                                        ],
                                                                                                        "properties": {
                                                                                                          "enabled": {
                                                                                                            "const": false
                                                                                                          }
                                                                                                        }
                                                                                                      },
                                                                                                      "then": {
                                                                                                        "required": []
                                                                                                      },
                                                                                                      "else": {
                                                                                                        "required": [
                                                                                                          "events"
                                                                                                        ]
                                                                                                      }
                                                                                                    }
                                                                                                  ]
                                                                                                }
                                                                                              },
                                                                                              "required": [
                                                                                                "action"
                                                                                              ]
                                                                                            }
                                                                                          },
                                                                                          "audit": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "enabled": {
                                                                                                "type": "boolean"
                                                                                              },
                                                                                              "events": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "name": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "message": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "conditions": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "var": {
                                                                                                            "description": "Specifies a variable to check.",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "operator": {
                                                                                                            "description": "Specifies an operator.",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ],
                                                                                                            "enum": [
                                                                                                              "=",
                                                                                                              "!=",
                                                                                                              "<=",
                                                                                                              ">=",
                                                                                                              ">",
                                                                                                              "<",
                                                                                                              "in",
                                                                                                              "not_in",
                                                                                                              "~",
                                                                                                              "~*",
                                                                                                              "!~",
                                                                                                              "!~*",
                                                                                                              "ip_range",
                                                                                                              "!ip_range",
                                                                                                              "dn_mask",
                                                                                                              "!dn_mask"
                                                                                                            ]
                                                                                                          },
                                                                                                          "val": {
                                                                                                            "description": "Specifies a value to check.",
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "var",
                                                                                                          "operator",
                                                                                                          "val"
                                                                                                        ]
                                                                                                      }
                                                                                                    },
                                                                                                    "fields": {
                                                                                                      "type": "array",
                                                                                                      "items": {
                                                                                                        "type": "object",
                                                                                                        "additionalProperties": false,
                                                                                                        "properties": {
                                                                                                          "key": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          },
                                                                                                          "val": {
                                                                                                            "type": [
                                                                                                              "number",
                                                                                                              "string"
                                                                                                            ]
                                                                                                          }
                                                                                                        },
                                                                                                        "required": [
                                                                                                          "key",
                                                                                                          "val"
                                                                                                        ]
                                                                                                      }
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "name",
                                                                                                    "message"
                                                                                                  ]
                                                                                                }
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "enabled"
                                                                                            ],
                                                                                            "allOf": [
                                                                                              {
                                                                                                "if": {
                                                                                                  "type": "object",
                                                                                                  "required": [
                                                                                                    "enabled"
                                                                                                  ],
                                                                                                  "properties": {
                                                                                                    "enabled": {
                                                                                                      "const": false
                                                                                                    }
                                                                                                  }
                                                                                                },
                                                                                                "then": {
                                                                                                  "required": []
                                                                                                },
                                                                                                "else": {
                                                                                                  "required": [
                                                                                                    "events"
                                                                                                  ]
                                                                                                }
                                                                                              }
                                                                                            ]
                                                                                          }
                                                                                        },
                                                                                        "required": [
                                                                                          "action"
                                                                                        ]
                                                                                      }
                                                                                    },
                                                                                    "audit": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "enabled": {
                                                                                          "type": "boolean"
                                                                                        },
                                                                                        "events": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "name": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "message": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "conditions": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "var": {
                                                                                                      "description": "Specifies a variable to check.",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "operator": {
                                                                                                      "description": "Specifies an operator.",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ],
                                                                                                      "enum": [
                                                                                                        "=",
                                                                                                        "!=",
                                                                                                        "<=",
                                                                                                        ">=",
                                                                                                        ">",
                                                                                                        "<",
                                                                                                        "in",
                                                                                                        "not_in",
                                                                                                        "~",
                                                                                                        "~*",
                                                                                                        "!~",
                                                                                                        "!~*",
                                                                                                        "ip_range",
                                                                                                        "!ip_range",
                                                                                                        "dn_mask",
                                                                                                        "!dn_mask"
                                                                                                      ]
                                                                                                    },
                                                                                                    "val": {
                                                                                                      "description": "Specifies a value to check.",
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "var",
                                                                                                    "operator",
                                                                                                    "val"
                                                                                                  ]
                                                                                                }
                                                                                              },
                                                                                              "fields": {
                                                                                                "type": "array",
                                                                                                "items": {
                                                                                                  "type": "object",
                                                                                                  "additionalProperties": false,
                                                                                                  "properties": {
                                                                                                    "key": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    },
                                                                                                    "val": {
                                                                                                      "type": [
                                                                                                        "number",
                                                                                                        "string"
                                                                                                      ]
                                                                                                    }
                                                                                                  },
                                                                                                  "required": [
                                                                                                    "key",
                                                                                                    "val"
                                                                                                  ]
                                                                                                }
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "name",
                                                                                              "message"
                                                                                            ]
                                                                                          }
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "enabled"
                                                                                      ],
                                                                                      "allOf": [
                                                                                        {
                                                                                          "if": {
                                                                                            "type": "object",
                                                                                            "required": [
                                                                                              "enabled"
                                                                                            ],
                                                                                            "properties": {
                                                                                              "enabled": {
                                                                                                "const": false
                                                                                              }
                                                                                            }
                                                                                          },
                                                                                          "then": {
                                                                                            "required": []
                                                                                          },
                                                                                          "else": {
                                                                                            "required": [
                                                                                              "events"
                                                                                            ]
                                                                                          }
                                                                                        }
                                                                                      ]
                                                                                    }
                                                                                  },
                                                                                  "required": [
                                                                                    "action"
                                                                                  ]
                                                                                }
                                                                              },
                                                                              "audit": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "enabled": {
                                                                                    "type": "boolean"
                                                                                  },
                                                                                  "events": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "name": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "message": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "conditions": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "var": {
                                                                                                "description": "Specifies a variable to check.",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "operator": {
                                                                                                "description": "Specifies an operator.",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ],
                                                                                                "enum": [
                                                                                                  "=",
                                                                                                  "!=",
                                                                                                  "<=",
                                                                                                  ">=",
                                                                                                  ">",
                                                                                                  "<",
                                                                                                  "in",
                                                                                                  "not_in",
                                                                                                  "~",
                                                                                                  "~*",
                                                                                                  "!~",
                                                                                                  "!~*",
                                                                                                  "ip_range",
                                                                                                  "!ip_range",
                                                                                                  "dn_mask",
                                                                                                  "!dn_mask"
                                                                                                ]
                                                                                              },
                                                                                              "val": {
                                                                                                "description": "Specifies a value to check.",
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "var",
                                                                                              "operator",
                                                                                              "val"
                                                                                            ]
                                                                                          }
                                                                                        },
                                                                                        "fields": {
                                                                                          "type": "array",
                                                                                          "items": {
                                                                                            "type": "object",
                                                                                            "additionalProperties": false,
                                                                                            "properties": {
                                                                                              "key": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              },
                                                                                              "val": {
                                                                                                "type": [
                                                                                                  "number",
                                                                                                  "string"
                                                                                                ]
                                                                                              }
                                                                                            },
                                                                                            "required": [
                                                                                              "key",
                                                                                              "val"
                                                                                            ]
                                                                                          }
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "name",
                                                                                        "message"
                                                                                      ]
                                                                                    }
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "enabled"
                                                                                ],
                                                                                "allOf": [
                                                                                  {
                                                                                    "if": {
                                                                                      "type": "object",
                                                                                      "required": [
                                                                                        "enabled"
                                                                                      ],
                                                                                      "properties": {
                                                                                        "enabled": {
                                                                                          "const": false
                                                                                        }
                                                                                      }
                                                                                    },
                                                                                    "then": {
                                                                                      "required": []
                                                                                    },
                                                                                    "else": {
                                                                                      "required": [
                                                                                        "events"
                                                                                      ]
                                                                                    }
                                                                                  }
                                                                                ]
                                                                              }
                                                                            },
                                                                            "required": [
                                                                              "action"
                                                                            ]
                                                                          }
                                                                        },
                                                                        "audit": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "enabled": {
                                                                              "type": "boolean"
                                                                            },
                                                                            "events": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "name": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "message": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "conditions": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "var": {
                                                                                          "description": "Specifies a variable to check.",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "operator": {
                                                                                          "description": "Specifies an operator.",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ],
                                                                                          "enum": [
                                                                                            "=",
                                                                                            "!=",
                                                                                            "<=",
                                                                                            ">=",
                                                                                            ">",
                                                                                            "<",
                                                                                            "in",
                                                                                            "not_in",
                                                                                            "~",
                                                                                            "~*",
                                                                                            "!~",
                                                                                            "!~*",
                                                                                            "ip_range",
                                                                                            "!ip_range",
                                                                                            "dn_mask",
                                                                                            "!dn_mask"
                                                                                          ]
                                                                                        },
                                                                                        "val": {
                                                                                          "description": "Specifies a value to check.",
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "var",
                                                                                        "operator",
                                                                                        "val"
                                                                                      ]
                                                                                    }
                                                                                  },
                                                                                  "fields": {
                                                                                    "type": "array",
                                                                                    "items": {
                                                                                      "type": "object",
                                                                                      "additionalProperties": false,
                                                                                      "properties": {
                                                                                        "key": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        },
                                                                                        "val": {
                                                                                          "type": [
                                                                                            "number",
                                                                                            "string"
                                                                                          ]
                                                                                        }
                                                                                      },
                                                                                      "required": [
                                                                                        "key",
                                                                                        "val"
                                                                                      ]
                                                                                    }
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "name",
                                                                                  "message"
                                                                                ]
                                                                              }
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "enabled"
                                                                          ],
                                                                          "allOf": [
                                                                            {
                                                                              "if": {
                                                                                "type": "object",
                                                                                "required": [
                                                                                  "enabled"
                                                                                ],
                                                                                "properties": {
                                                                                  "enabled": {
                                                                                    "const": false
                                                                                  }
                                                                                }
                                                                              },
                                                                              "then": {
                                                                                "required": []
                                                                              },
                                                                              "else": {
                                                                                "required": [
                                                                                  "events"
                                                                                ]
                                                                              }
                                                                            }
                                                                          ]
                                                                        }
                                                                      },
                                                                      "required": [
                                                                        "action"
                                                                      ]
                                                                    }
                                                                  },
                                                                  "audit": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "enabled": {
                                                                        "type": "boolean"
                                                                      },
                                                                      "events": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "name": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "message": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "conditions": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "var": {
                                                                                    "description": "Specifies a variable to check.",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "operator": {
                                                                                    "description": "Specifies an operator.",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ],
                                                                                    "enum": [
                                                                                      "=",
                                                                                      "!=",
                                                                                      "<=",
                                                                                      ">=",
                                                                                      ">",
                                                                                      "<",
                                                                                      "in",
                                                                                      "not_in",
                                                                                      "~",
                                                                                      "~*",
                                                                                      "!~",
                                                                                      "!~*",
                                                                                      "ip_range",
                                                                                      "!ip_range",
                                                                                      "dn_mask",
                                                                                      "!dn_mask"
                                                                                    ]
                                                                                  },
                                                                                  "val": {
                                                                                    "description": "Specifies a value to check.",
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "var",
                                                                                  "operator",
                                                                                  "val"
                                                                                ]
                                                                              }
                                                                            },
                                                                            "fields": {
                                                                              "type": "array",
                                                                              "items": {
                                                                                "type": "object",
                                                                                "additionalProperties": false,
                                                                                "properties": {
                                                                                  "key": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  },
                                                                                  "val": {
                                                                                    "type": [
                                                                                      "number",
                                                                                      "string"
                                                                                    ]
                                                                                  }
                                                                                },
                                                                                "required": [
                                                                                  "key",
                                                                                  "val"
                                                                                ]
                                                                              }
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "name",
                                                                            "message"
                                                                          ]
                                                                        }
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "enabled"
                                                                    ],
                                                                    "allOf": [
                                                                      {
                                                                        "if": {
                                                                          "type": "object",
                                                                          "required": [
                                                                            "enabled"
                                                                          ],
                                                                          "properties": {
                                                                            "enabled": {
                                                                              "const": false
                                                                            }
                                                                          }
                                                                        },
                                                                        "then": {
                                                                          "required": []
                                                                        },
                                                                        "else": {
                                                                          "required": [
                                                                            "events"
                                                                          ]
                                                                        }
                                                                      }
                                                                    ]
                                                                  }
                                                                },
                                                                "required": [
                                                                  "action"
                                                                ]
                                                              }
                                                            },
                                                            "audit": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "enabled": {
                                                                  "type": "boolean"
                                                                },
                                                                "events": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "name": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "message": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "conditions": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "var": {
                                                                              "description": "Specifies a variable to check.",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "operator": {
                                                                              "description": "Specifies an operator.",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ],
                                                                              "enum": [
                                                                                "=",
                                                                                "!=",
                                                                                "<=",
                                                                                ">=",
                                                                                ">",
                                                                                "<",
                                                                                "in",
                                                                                "not_in",
                                                                                "~",
                                                                                "~*",
                                                                                "!~",
                                                                                "!~*",
                                                                                "ip_range",
                                                                                "!ip_range",
                                                                                "dn_mask",
                                                                                "!dn_mask"
                                                                              ]
                                                                            },
                                                                            "val": {
                                                                              "description": "Specifies a value to check.",
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "var",
                                                                            "operator",
                                                                            "val"
                                                                          ]
                                                                        }
                                                                      },
                                                                      "fields": {
                                                                        "type": "array",
                                                                        "items": {
                                                                          "type": "object",
                                                                          "additionalProperties": false,
                                                                          "properties": {
                                                                            "key": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            },
                                                                            "val": {
                                                                              "type": [
                                                                                "number",
                                                                                "string"
                                                                              ]
                                                                            }
                                                                          },
                                                                          "required": [
                                                                            "key",
                                                                            "val"
                                                                          ]
                                                                        }
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "name",
                                                                      "message"
                                                                    ]
                                                                  }
                                                                }
                                                              },
                                                              "required": [
                                                                "enabled"
                                                              ],
                                                              "allOf": [
                                                                {
                                                                  "if": {
                                                                    "type": "object",
                                                                    "required": [
                                                                      "enabled"
                                                                    ],
                                                                    "properties": {
                                                                      "enabled": {
                                                                        "const": false
                                                                      }
                                                                    }
                                                                  },
                                                                  "then": {
                                                                    "required": []
                                                                  },
                                                                  "else": {
                                                                    "required": [
                                                                      "events"
                                                                    ]
                                                                  }
                                                                }
                                                              ]
                                                            }
                                                          },
                                                          "required": [
                                                            "action"
                                                          ]
                                                        }
                                                      },
                                                      "audit": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "enabled": {
                                                            "type": "boolean"
                                                          },
                                                          "events": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "name": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "message": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "conditions": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "var": {
                                                                        "description": "Specifies a variable to check.",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "operator": {
                                                                        "description": "Specifies an operator.",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ],
                                                                        "enum": [
                                                                          "=",
                                                                          "!=",
                                                                          "<=",
                                                                          ">=",
                                                                          ">",
                                                                          "<",
                                                                          "in",
                                                                          "not_in",
                                                                          "~",
                                                                          "~*",
                                                                          "!~",
                                                                          "!~*",
                                                                          "ip_range",
                                                                          "!ip_range",
                                                                          "dn_mask",
                                                                          "!dn_mask"
                                                                        ]
                                                                      },
                                                                      "val": {
                                                                        "description": "Specifies a value to check.",
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "var",
                                                                      "operator",
                                                                      "val"
                                                                    ]
                                                                  }
                                                                },
                                                                "fields": {
                                                                  "type": "array",
                                                                  "items": {
                                                                    "type": "object",
                                                                    "additionalProperties": false,
                                                                    "properties": {
                                                                      "key": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      },
                                                                      "val": {
                                                                        "type": [
                                                                          "number",
                                                                          "string"
                                                                        ]
                                                                      }
                                                                    },
                                                                    "required": [
                                                                      "key",
                                                                      "val"
                                                                    ]
                                                                  }
                                                                }
                                                              },
                                                              "required": [
                                                                "name",
                                                                "message"
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "enabled"
                                                        ],
                                                        "allOf": [
                                                          {
                                                            "if": {
                                                              "type": "object",
                                                              "required": [
                                                                "enabled"
                                                              ],
                                                              "properties": {
                                                                "enabled": {
                                                                  "const": false
                                                                }
                                                              }
                                                            },
                                                            "then": {
                                                              "required": []
                                                            },
                                                            "else": {
                                                              "required": [
                                                                "events"
                                                              ]
                                                            }
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "action"
                                                    ]
                                                  }
                                                },
                                                "audit": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "enabled": {
                                                      "type": "boolean"
                                                    },
                                                    "events": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "name": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "message": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "conditions": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "var": {
                                                                  "description": "Specifies a variable to check.",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "operator": {
                                                                  "description": "Specifies an operator.",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ],
                                                                  "enum": [
                                                                    "=",
                                                                    "!=",
                                                                    "<=",
                                                                    ">=",
                                                                    ">",
                                                                    "<",
                                                                    "in",
                                                                    "not_in",
                                                                    "~",
                                                                    "~*",
                                                                    "!~",
                                                                    "!~*",
                                                                    "ip_range",
                                                                    "!ip_range",
                                                                    "dn_mask",
                                                                    "!dn_mask"
                                                                  ]
                                                                },
                                                                "val": {
                                                                  "description": "Specifies a value to check.",
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                }
                                                              },
                                                              "required": [
                                                                "var",
                                                                "operator",
                                                                "val"
                                                              ]
                                                            }
                                                          },
                                                          "fields": {
                                                            "type": "array",
                                                            "items": {
                                                              "type": "object",
                                                              "additionalProperties": false,
                                                              "properties": {
                                                                "key": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                },
                                                                "val": {
                                                                  "type": [
                                                                    "number",
                                                                    "string"
                                                                  ]
                                                                }
                                                              },
                                                              "required": [
                                                                "key",
                                                                "val"
                                                              ]
                                                            }
                                                          }
                                                        },
                                                        "required": [
                                                          "name",
                                                          "message"
                                                        ]
                                                      }
                                                    }
                                                  },
                                                  "required": [
                                                    "enabled"
                                                  ],
                                                  "allOf": [
                                                    {
                                                      "if": {
                                                        "type": "object",
                                                        "required": [
                                                          "enabled"
                                                        ],
                                                        "properties": {
                                                          "enabled": {
                                                            "const": false
                                                          }
                                                        }
                                                      },
                                                      "then": {
                                                        "required": []
                                                      },
                                                      "else": {
                                                        "required": [
                                                          "events"
                                                        ]
                                                      }
                                                    }
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "action"
                                              ]
                                            }
                                          },
                                          "audit": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "enabled": {
                                                "type": "boolean"
                                              },
                                              "events": {
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "name": {
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "message": {
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "conditions": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "var": {
                                                            "description": "Specifies a variable to check.",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "operator": {
                                                            "description": "Specifies an operator.",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ],
                                                            "enum": [
                                                              "=",
                                                              "!=",
                                                              "<=",
                                                              ">=",
                                                              ">",
                                                              "<",
                                                              "in",
                                                              "not_in",
                                                              "~",
                                                              "~*",
                                                              "!~",
                                                              "!~*",
                                                              "ip_range",
                                                              "!ip_range",
                                                              "dn_mask",
                                                              "!dn_mask"
                                                            ]
                                                          },
                                                          "val": {
                                                            "description": "Specifies a value to check.",
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "var",
                                                          "operator",
                                                          "val"
                                                        ]
                                                      }
                                                    },
                                                    "fields": {
                                                      "type": "array",
                                                      "items": {
                                                        "type": "object",
                                                        "additionalProperties": false,
                                                        "properties": {
                                                          "key": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          },
                                                          "val": {
                                                            "type": [
                                                              "number",
                                                              "string"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "key",
                                                          "val"
                                                        ]
                                                      }
                                                    }
                                                  },
                                                  "required": [
                                                    "name",
                                                    "message"
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "enabled"
                                            ],
                                            "allOf": [
                                              {
                                                "if": {
                                                  "type": "object",
                                                  "required": [
                                                    "enabled"
                                                  ],
                                                  "properties": {
                                                    "enabled": {
                                                      "const": false
                                                    }
                                                  }
                                                },
                                                "then": {
                                                  "required": []
                                                },
                                                "else": {
                                                  "required": [
                                                    "events"
                                                  ]
                                                }
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "action"
                                        ]
                                      }
                                    },
                                    "audit": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "enabled": {
                                          "type": "boolean"
                                        },
                                        "events": {
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "name": {
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              },
                                              "message": {
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              },
                                              "conditions": {
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "var": {
                                                      "description": "Specifies a variable to check.",
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "operator": {
                                                      "description": "Specifies an operator.",
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ],
                                                      "enum": [
                                                        "=",
                                                        "!=",
                                                        "<=",
                                                        ">=",
                                                        ">",
                                                        "<",
                                                        "in",
                                                        "not_in",
                                                        "~",
                                                        "~*",
                                                        "!~",
                                                        "!~*",
                                                        "ip_range",
                                                        "!ip_range",
                                                        "dn_mask",
                                                        "!dn_mask"
                                                      ]
                                                    },
                                                    "val": {
                                                      "description": "Specifies a value to check.",
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "var",
                                                    "operator",
                                                    "val"
                                                  ]
                                                }
                                              },
                                              "fields": {
                                                "type": "array",
                                                "items": {
                                                  "type": "object",
                                                  "additionalProperties": false,
                                                  "properties": {
                                                    "key": {
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    },
                                                    "val": {
                                                      "type": [
                                                        "number",
                                                        "string"
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "key",
                                                    "val"
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "name",
                                              "message"
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "enabled"
                                      ],
                                      "allOf": [
                                        {
                                          "if": {
                                            "type": "object",
                                            "required": [
                                              "enabled"
                                            ],
                                            "properties": {
                                              "enabled": {
                                                "const": false
                                              }
                                            }
                                          },
                                          "then": {
                                            "required": []
                                          },
                                          "else": {
                                            "required": [
                                              "events"
                                            ]
                                          }
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "action"
                                  ]
                                }
                              },
                              "audit": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "enabled": {
                                    "type": "boolean"
                                  },
                                  "events": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "name": {
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "message": {
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "conditions": {
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "var": {
                                                "description": "Specifies a variable to check.",
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              },
                                              "operator": {
                                                "description": "Specifies an operator.",
                                                "type": [
                                                  "number",
                                                  "string"
                                                ],
                                                "enum": [
                                                  "=",
                                                  "!=",
                                                  "<=",
                                                  ">=",
                                                  ">",
                                                  "<",
                                                  "in",
                                                  "not_in",
                                                  "~",
                                                  "~*",
                                                  "!~",
                                                  "!~*",
                                                  "ip_range",
                                                  "!ip_range",
                                                  "dn_mask",
                                                  "!dn_mask"
                                                ]
                                              },
                                              "val": {
                                                "description": "Specifies a value to check.",
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "var",
                                              "operator",
                                              "val"
                                            ]
                                          }
                                        },
                                        "fields": {
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "additionalProperties": false,
                                            "properties": {
                                              "key": {
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              },
                                              "val": {
                                                "type": [
                                                  "number",
                                                  "string"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "key",
                                              "val"
                                            ]
                                          }
                                        }
                                      },
                                      "required": [
                                        "name",
                                        "message"
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "enabled"
                                ],
                                "allOf": [
                                  {
                                    "if": {
                                      "type": "object",
                                      "required": [
                                        "enabled"
                                      ],
                                      "properties": {
                                        "enabled": {
                                          "const": false
                                        }
                                      }
                                    },
                                    "then": {
                                      "required": []
                                    },
                                    "else": {
                                      "required": [
                                        "events"
                                      ]
                                    }
                                  }
                                ]
                              }
                            },
                            "required": [
                              "action"
                            ]
                          }
                        },
                        "audit": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "enabled": {
                              "type": "boolean"
                            },
                            "events": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "name": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "message": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "conditions": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "var": {
                                          "description": "Specifies a variable to check.",
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "operator": {
                                          "description": "Specifies an operator.",
                                          "type": [
                                            "number",
                                            "string"
                                          ],
                                          "enum": [
                                            "=",
                                            "!=",
                                            "<=",
                                            ">=",
                                            ">",
                                            "<",
                                            "in",
                                            "not_in",
                                            "~",
                                            "~*",
                                            "!~",
                                            "!~*",
                                            "ip_range",
                                            "!ip_range",
                                            "dn_mask",
                                            "!dn_mask"
                                          ]
                                        },
                                        "val": {
                                          "description": "Specifies a value to check.",
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "var",
                                        "operator",
                                        "val"
                                      ]
                                    }
                                  },
                                  "fields": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "key": {
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        },
                                        "val": {
                                          "type": [
                                            "number",
                                            "string"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "key",
                                        "val"
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "name",
                                  "message"
                                ]
                              }
                            }
                          },
                          "required": [
                            "enabled"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "enabled"
                                ],
                                "properties": {
                                  "enabled": {
                                    "const": false
                                  }
                                }
                              },
                              "then": {
                                "required": []
                              },
                              "else": {
                                "required": [
                                  "events"
                                ]
                              }
                            }
                          ]
                        }
                      }
                    }
                  },
                  "request_chain_properties": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "error_state_code": {
                        "type": "integer"
                      },
                      "failed_check_state_code": {
                        "type": "integer"
                      },
                      "max_buffer_size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "max_inmemory_size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "output_buffer_size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "input_buffer_size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "temp_file_path": {
                        "description": "Directory to save temp files. Default is /tmp",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "resp_gen_rules_file": {
                        "description": "Specifies the YAML rule file which describes how to fill pattern file.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "resp_gen_content_type": {
                        "description": "Specifies content type for response header. Default - none.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "resp_gen_pattern_file": {
                        "description": "Specifies pattern file.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "trace_config": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enableAllActions": {
                            "description": "enable tracing of all actions in chains",
                            "type": "boolean"
                          },
                          "enableAllChains": {
                            "description": "enable tracing of all actions in child chains",
                            "type": "boolean"
                          },
                          "mode": {
                            "description": "Enable or disable tracing at this level.",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "enabled": {
                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "on",
                                  "off",
                                  "var_based"
                                ]
                              },
                              "var": {
                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            }
                          },
                          "spanAttributes": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "description": "name of attribute",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "value": {
                                  "description": "value of attribute, can contain variables",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                }
                              }
                            }
                          },
                          "spanName": {
                            "description": "Specify name of span",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "enableSocketsTracing": {
                            "description": "Enable or disable socket tracing, by default enabled",
                            "type": "boolean"
                          }
                        }
                      },
                      "requiredActionOneOf": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "accessPhase": {},
                          "rewritePhase": {}
                        }
                      }
                    }
                  }
                },
                "allOf": [
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "request_chains"
                      ],
                      "properties": {
                        "request_chains": {
                          "pattern": ".+"
                        }
                      }
                    },
                    "else": {
                      "not": {
                        "required": [
                          "request_chain_properties"
                        ]
                      }
                    }
                  }
                ]
              },
              "response_generator": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "pattern_file": {
                    "description": "Specifies rule file which describes how to fill pattern file.",
                    "type": "string",
                    "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                  },
                  "rules_file": {
                    "description": "Specifies rule file which describes how to fill pattern file. Default - rules file from system resources.",
                    "type": "string",
                    "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                  },
                  "content_type": {
                    "description": "Specifies content type for response header. Default - none.",
                    "type": "string"
                  }
                },
                "required": [
                  "pattern_file",
                  "rules_file"
                ]
              },
              "allowed_queries": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "method": {
                      "type": "string",
                      "enum": [
                        "get",
                        "head",
                        "post",
                        "put",
                        "options",
                        "trace",
                        "patch",
                        "delete"
                      ]
                    },
                    "decodeUrl": {
                      "description": "By default mds use url-decoded request parameters",
                      "type": "boolean"
                    },
                    "strict_params_check": {
                      "description": "False by default. Allows to block undescribed params and paramless requests.",
                      "type": "boolean"
                    },
                    "undescribed": {
                      "description": "False by default when no params, true when params present. Deny or pass request with undescribed request query params",
                      "type": "boolean"
                    },
                    "params": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "pattern": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^((?!\\(\\?i\\)|\\(\\?-i\\)).)*$"
                          }
                        },
                        "required": [
                          "name",
                          "pattern"
                        ]
                      }
                    }
                  },
                  "required": [
                    "method"
                  ]
                }
              },
              "optional": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "log_level": {
                    "type": [
                      "number",
                      "string"
                    ],
                    "enum": [
                      "debug",
                      "info",
                      "notice",
                      "warn",
                      "error",
                      "crit",
                      "alert",
                      "off"
                    ]
                  },
                  "group_access_log": {
                    "description": "Specifies whether group or not the access log by status codes (2xx, 3xx, 4xx, 5xx, 404, 413, 429, 499, 500). Default is false.",
                    "type": "boolean"
                  },
                  "log_format": {
                    "description": "Specifies which format to use.",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "root": {
                    "description": "Root folder. Value must be a relative path from custom resources",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "alias": {
                    "description": "Alias. Value must be a relative path from custom resources",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "absolute_alias_path": {
                    "description": "Aliasing will be done to any directory by absolute path. False by default",
                    "type": "boolean"
                  },
                  "index": {
                    "description": "Index page/file",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "rewrite": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "from": {
                        "description": "Rewrite from",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "to": {
                        "description": "Rewrite to",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "flag": {
                        "description": "Rewrite flag",
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "last",
                          "break",
                          "redirect",
                          "permanent"
                        ]
                      }
                    },
                    "required": [
                      "from",
                      "to"
                    ]
                  },
                  "response_code": {
                    "type": "integer"
                  },
                  "response_body": {
                    "description": "Raw body data.",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "response_file": {
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "client_header_timeout": {
                    "description": "Sets the timeout for reading headers from the client. The default value is \"60s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "client_body_timeout": {
                    "description": "Sets the timeout for reading body from the client. The default value is \"60s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "keepalive_timeout": {
                    "description": "Defines a timeout duaring which a connection will stay open. The default value is \"75s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "keepalive_time": {
                    "description": "Limits the maximum time during which requests can be processed through one keep-alive connection. After this time is reached, the connection is closed following the subsequent request processing. By default -  timeout 1h",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "keepalive_requests": {
                    "description": "Sets the maximum number of the request duaring keep-alive timeiut. The default value is \"10000\".",
                    "type": "integer"
                  },
                  "send_timeout_to_client": {
                    "description": "Sets the timeout for sending answer to the client. The default value is \"60s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "session": {
                    "description": "Enables http session support. The default value is \"off\".",
                    "type": "boolean"
                  },
                  "session_timeout": {
                    "description": "Value in seconds. Default value is 60.",
                    "type": "integer"
                  },
                  "session_cookie_name": {
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "session_redirect_timeout": {
                    "description": "Value in seconds. Must not be larger than session timeout. Default value is 5.",
                    "type": "integer"
                  },
                  "session_show": {
                    "type": "boolean"
                  },
                  "session_cache": {
                    "description": "specifies cache size for ssl session. The default value evaluates automatically.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "off",
                          "none",
                          "builtin",
                          "shared"
                        ]
                      },
                      "name": {
                        "type": "string"
                      },
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  "pipelined_requests": {
                    "description": "Enables/disable pipelined requests, by default -on",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "http2_only": {
                    "description": "Allow to pass only http2 protocol connection. Default - off",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "upload_size_limit": {
                    "description": "Specifies maximum size of the request body. Parameter \"drop\" specifies whether drop connection or not.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "drop": {
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "enable": {
                        "description": "Enables limit request body. Default \"true\"",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "size"
                    ]
                  },
                  "download_size_limit": {
                    "description": "Specifies maximum size of the response body. The connection will be dropped when size will be exceeded.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "drop": {
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "status": {
                        "description": "Specifies the status code when response size was exceeded. By default is 413.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(4|5)[0-9]{2}$"
                      }
                    },
                    "required": [
                      "size"
                    ]
                  },
                  "set_variable": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "value": {
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "required": [
                        "name",
                        "value"
                      ]
                    }
                  },
                  "etag": {
                    "description": "Enables/disables etag response header. Enabled by default.",
                    "type": "boolean"
                  },
                  "uri_match_type": {
                    "description": "Specifies location match type (~/=/prefix). Regex (~) by default.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "enum": [
                      "prefix",
                      "regex",
                      "exact"
                    ]
                  },
                  "opentelemetry": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "tracing": {
                        "description": "Defines parameters of Opentelemetry Tracing",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "mode": {
                            "description": "Enable or disable tracing at this level",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "enabled": {
                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "on",
                                  "off",
                                  "var_based"
                                ]
                              },
                              "var": {
                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            },
                            "allOf": [
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "enabled"
                                  ],
                                  "properties": {
                                    "enabled": {
                                      "const": "var_based"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "var"
                                  ]
                                }
                              }
                            ]
                          },
                          "trace_context": {
                            "description": "Specifies how to propagate traceparent/tracestate headers.   Default - ignore",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "extract",
                              "inject",
                              "propagate",
                              "ignore"
                            ]
                          },
                          "span_name": {
                            "description": "Defines the name of span. By default - name of location, can be contain variables",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "span_attr": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "description": "name of attribute",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "value": {
                                  "description": "value of attribute, can contain variables",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            ""
                          ],
                          "properties": {
                            "": {
                              "properties": {
                                "system": {
                                  "type": "object",
                                  "required": [
                                    "system"
                                  ],
                                  "properties": {
                                    "system": {},
                                    "optional": {
                                      "type": "object",
                                      "required": [
                                        "opentelemetry"
                                      ],
                                      "properties": {
                                        "opentelemetry": {
                                          "pattern": ".+"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "tracing"
                            ]
                          }
                        }
                      }
                    ]
                  },
                  "limit_req": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enable limit req module",
                        "type": "boolean"
                      },
                      "rate": {
                        "description": "The count of requests which will be handled per time interval.",
                        "type": "number"
                      },
                      "rate_interval": {
                        "description": "Time interval for request rate measuring. Specify 's' for second and 'm' for minute. By default is 's'. Hint - if you need '0.5r/s', you can specify '30r/m'.",
                        "type": "string",
                        "enum": [
                          "s",
                          "m"
                        ]
                      },
                      "size": {
                        "description": "Shared memory zone used to store the state of each IP address and how often it has accessed a request limited URL. The default value is \"10m\"",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})$"
                      },
                      "burst": {
                        "description": "Defines how many requests a client can make in excess of the rate. The default value is \"0\"",
                        "type": "integer"
                      },
                      "cpu_limit": {
                        "description": "Defines maximum CPU load percentage. After exceeding limit, all incoming connections will be declined.",
                        "type": "integer"
                      },
                      "mem_limit": {
                        "description": "Defines maximum memory load percentage. After exceeding limit, all incoming connections will be declined.",
                        "type": "integer"
                      },
                      "target": {
                        "description": "Specifies a target for check. You can use predefined values 'src_ip' and 'service' or any nginx variables using prefix '$' (e.g. $server_port).",
                        "type": "string",
                        "pattern": "^((src_ip)|(service)|(request_method)|(\\$[a-z_]+))$"
                      },
                      "policy_type": {
                        "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                        "type": "string",
                        "enum": [
                          "allow",
                          "forbid"
                        ]
                      },
                      "exclude_ip": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "nodelay": {
                        "description": "default false",
                        "type": "boolean"
                      },
                      "forbid_action": {
                        "description": "Specifies location on which will be redirected",
                        "type": "string"
                      },
                      "status_code": {
                        "description": "Defines the response code if the limit is exceeded. Default value is \"413\".",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "dry_run": {
                        "description": "Enables dry run mode. Default is off.",
                        "type": "boolean"
                      },
                      "condition": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "condition_var": {
                            "type": "string",
                            "pattern": "^\\$.+$"
                          },
                          "condition_value": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "ifall",
                              "ifany",
                              "if"
                            ]
                          },
                          "expression": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "variable": {
                                  "type": "string",
                                  "pattern": "^\\$.+$"
                                },
                                "operation": {
                                  "type": "string",
                                  "enum": [
                                    ">=",
                                    "=",
                                    ">",
                                    "<",
                                    "<=",
                                    "!=",
                                    "~",
                                    "~*",
                                    "!~",
                                    "!~*",
                                    "-f",
                                    "!-f",
                                    "-d",
                                    "!-d",
                                    "-e",
                                    "!-e",
                                    "-x",
                                    "!-x"
                                  ]
                                },
                                "value": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "variable"
                              ]
                            }
                          }
                        },
                        "required": [
                          "condition_var",
                          "condition_value",
                          "type"
                        ]
                      }
                    },
                    "required": [
                      "enabled",
                      "target"
                    ]
                  },
                  "limit_requests": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enable limit req module",
                        "type": "boolean"
                      },
                      "status_code": {
                        "description": "Defines the response code if the limit is exceeded. Default value is \"413\".",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "dry_run": {
                        "description": "Enables dry run mode. Default is off.",
                        "type": "boolean"
                      },
                      "limit_req": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "rate": {
                              "description": "The count of requests which will be handled per time interval.",
                              "type": "number"
                            },
                            "rate_interval": {
                              "description": "Time interval for request rate measuring. Specify 's' for second and 'm' for minute. By default is 's'. Hint - if you need '0.5r/s', you can specify '30r/m'.",
                              "type": "string",
                              "enum": [
                                "s",
                                "m"
                              ]
                            },
                            "size": {
                              "description": "Shared memory zone used to store the state of each IP address and how often it has accessed a request limited URL. The default value is \"10m\"",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^([0-9]+[kKmM]{1})$"
                            },
                            "burst": {
                              "description": "Defines how many requests a client can make in excess of the rate. The default value is \"0\"",
                              "type": "integer"
                            },
                            "cpu_limit": {
                              "description": "Defines maximum CPU load percentage. After exceeding limit, all incoming connections will be declined.",
                              "type": "integer"
                            },
                            "mem_limit": {
                              "description": "Defines maximum memory load percentage. After exceeding limit, all incoming connections will be declined.",
                              "type": "integer"
                            },
                            "target": {
                              "description": "Specifies a target for check. You can use predefined values 'src_ip' and 'service' or any nginx variables using prefix '$' (e.g. $server_port).",
                              "type": "string",
                              "pattern": "^((src_ip)|(service)|(request_method)|(\\$[a-z_]+))$"
                            },
                            "policy_type": {
                              "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                              "type": "string",
                              "enum": [
                                "allow",
                                "forbid"
                              ]
                            },
                            "exclude_ip": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                              }
                            },
                            "nodelay": {
                              "description": "default false",
                              "type": "boolean"
                            },
                            "forbid_action": {
                              "description": "Specifies location on which will be redirected",
                              "type": "string"
                            },
                            "condition": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "condition_var": {
                                  "type": "string",
                                  "pattern": "^\\$.+$"
                                },
                                "condition_value": {
                                  "type": "string"
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "ifall",
                                    "ifany",
                                    "if"
                                  ]
                                },
                                "expression": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "variable": {
                                        "type": "string",
                                        "pattern": "^\\$.+$"
                                      },
                                      "operation": {
                                        "type": "string",
                                        "enum": [
                                          ">=",
                                          "=",
                                          ">",
                                          "<",
                                          "<=",
                                          "!=",
                                          "~",
                                          "~*",
                                          "!~",
                                          "!~*",
                                          "-f",
                                          "!-f",
                                          "-d",
                                          "!-d",
                                          "-e",
                                          "!-e",
                                          "-x",
                                          "!-x"
                                        ]
                                      },
                                      "value": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "variable"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "condition_var",
                                "condition_value",
                                "type"
                              ]
                            }
                          },
                          "required": [
                            "target"
                          ]
                        }
                      }
                    },
                    "required": [
                      "enabled",
                      "limit_req"
                    ]
                  },
                  "robot_mitigation": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enables defense against HTTP robot attacks.",
                        "type": "boolean"
                      },
                      "blacklist": {
                        "description": "Means if a client has failed for N times, this client will be added into blacklist. Default 5",
                        "type": "integer"
                      },
                      "mode": {
                        "description": "Robot Mitigation will return a user-defined js code or predefined flash file to the client. Default js",
                        "type": "string",
                        "enum": [
                          "js",
                          "swf"
                        ]
                      },
                      "timeout": {
                        "description": "Sets the time for the next challenge to be initiated, in seconds. Default 60",
                        "type": "integer"
                      },
                      "ajax": {
                        "description": "This directive sets if challenge for ajax requests based on XMLRequest header. Default off",
                        "type": "boolean"
                      },
                      "policy_type": {
                        "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                        "type": "string",
                        "enum": [
                          "allow",
                          "forbid"
                        ]
                      },
                      "exclude_ip": {
                        "description": "Specifies the IP addresses, which will be excluded from whitelist",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "ua_whitelist": {
                        "description": "This directives specifies the User-Agent whitelist.",
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "ip_behavior": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "sample_base": {
                        "description": "Specifies the number of the request for a valid sample",
                        "type": "number"
                      },
                      "size": {
                        "description": "Size means how much memory will use by zone. The default value is \"10m\"",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})$"
                      },
                      "sample_cycle": {
                        "description": "Specifies the cyclog of the sampling, unit could be s (for second) and m (for minute).",
                        "type": "string",
                        "pattern": "^([0-9]+[mMsS]{1})$"
                      },
                      "sensitive": {
                        "description": "Specifies sensitive locations. If a location is defined as a sensitive location, all the resources under this location will be treated as sensitive. Default false",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "sample_base",
                      "size",
                      "sample_cycle"
                    ]
                  },
                  "cookie_poisoning": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enables monitoring the Set-Cookies headers and the cookie values in the response from server side.",
                        "type": "boolean"
                      },
                      "action": {
                        "description": "This directive specifies the action when cookie values are detected changed.  Default block",
                        "type": "string",
                        "pattern": "^block|pass|remove|blacklist,[0-9]+$"
                      },
                      "log": {
                        "type": "boolean"
                      },
                      "policy_type": {
                        "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                        "type": "string",
                        "enum": [
                          "allow",
                          "forbid"
                        ]
                      },
                      "exclude_ip": {
                        "description": "Specifies the IP addresses, which will be excluded from whitelist",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "include_ip": {
                        "description": "Specifies the IP addresses, which will be included to whitelist",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                        }
                      },
                      "ua_whitelist": {
                        "description": "This directives specifies the User-Agent whitelist.",
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "gzip": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enables response compression by gzip method.",
                        "type": "boolean"
                      },
                      "optional": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "level": {
                            "description": "Sets the compression level. The default value is \"5\".",
                            "type": "integer",
                            "enum": [
                              1,
                              2,
                              3,
                              4,
                              5,
                              6,
                              7,
                              8,
                              9
                            ]
                          },
                          "types": {
                            "description": "Sets the mime-types for which compression is applied. The default value is \"text/html\".",
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "buffer_count": {
                            "description": "Sets the count of buffers in wich the response will be placed. The default value is \"32\".",
                            "type": "integer"
                          },
                          "buffer_size": {
                            "description": "Sets the buffer size in wich the response will be placed. The default value is memory page size.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "exclude": {
                            "description": "Sets the list of the User-Agent specified by regular expressions for which compression will be disabled.",
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "min_length": {
                            "description": "Sets the minimum length of the response for which compression will be applied. The default value is \"20\".",
                            "type": "integer"
                          },
                          "http_version": {
                            "description": "Specifies the minimum version for the request necessary for the response compression. The default value is \"1.0\"",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              1.0,
                              1.1
                            ]
                          },
                          "proxied": {
                            "description": "Enables or disables gzipping of responses for proxied requests depending on the request and response.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              false,
                              "expired",
                              "no-cache",
                              "no-store",
                              "private",
                              "no_last_modified",
                              "no_etag",
                              "auth",
                              "any"
                            ]
                          },
                          "vary": {
                            "description": "Enables or disables inserting the 'Vary: Accept-Encoding' response header field if the directives gzip, gzip_static, or gunzip are active.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              true,
                              false
                            ]
                          },
                          "static": {
                            "description": "Enables or disables checking the existence of precompressed files. With the \"always\" value, gzipped file is used in all cases, without checking if the client supports it. Default - off",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              true,
                              false,
                              "always"
                            ]
                          }
                        }
                      }
                    },
                    "required": [
                      "enabled"
                    ]
                  },
                  "limit_conn": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "description": "Enable limit conn module",
                        "type": "boolean"
                      },
                      "count": {
                        "description": "The count of connections which will be handled.",
                        "type": "number"
                      },
                      "size": {
                        "description": "Shared memory zone used to store the state of each target and how often it has create connection. The default value is \"10m\"",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})$"
                      },
                      "target": {
                        "description": "Specifies a target for check.",
                        "type": "string"
                      },
                      "status_code": {
                        "description": "Defines the response code if the limit is exceeded. Default value is \"503\".",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^\\d{3}$"
                      },
                      "dry_run": {
                        "description": "Enables dry run mode. Default is off.",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "enabled",
                      "count",
                      "target"
                    ]
                  },
                  "async_io": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "directio_threshold": {
                        "description": "Enables the use of the O_DIRECT flag (FreeBSD, Linux), the F_NOCACHE flag (macOS), or the directio() function (Solaris), when reading files that are larger than or equal to the specified size.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      },
                      "thread_pool_id": {
                        "description": "Defines thread pool to use by id. If the thread_pool_id is omitted, the pool with the name default is used.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "write": {
                        "description": "Specifies whether async_io is used for writing files.",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "directio_threshold"
                    ]
                  },
                  "log_masking_rules": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "log_type": {
                          "description": "Which log type will be masked",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "event",
                            "security",
                            "all"
                          ]
                        },
                        "object": {
                          "description": "Specifies in which part of data masking will be maked",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "request_header",
                            "response_header",
                            "request_body",
                            "response_body",
                            "request_cookie",
                            "response_cookie"
                          ]
                        },
                        "cookie": {
                          "description": "Individual cookie name wich will be masked",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "header": {
                          "description": "Header name which will be masked",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "mask_symbol": {
                          "description": "Specifies which symbol will be used on replacement",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "."
                        },
                        "expression": {
                          "description": "Search pattern",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "replace_group": {
                          "description": "Specifies group number in expression which will be used for replacement for request or response body. If 0 - replacing full match string",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^[0-9]*$"
                        },
                        "replace_all": {
                          "description": "Replace all occurences or first. By default only first occurence replacing",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "exclusion": {
                          "description": "Define exlcusion from masking in all object with this type, default false",
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "object"
                      ]
                    }
                  },
                  "client_body_buffer_size": {
                    "description": "Sets buffer size for reading client request body. Default By default, buffer size is equal to two memory pages. For x86 it is usually 8K.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "client_body_in_file_only": {
                    "description": "Determines whether nginx should save the entire client request body into a file. By default is off.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off",
                      "clean"
                    ]
                  },
                  "client_body_in_single_buffer": {
                    "description": "Determines whether nginx should save the entire client request body in a single buffer. By default is off.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "client_header_buffer_size": {
                    "description": "Sets buffer size for reading client request header. By default is 1k.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "large_client_header_buffers": {
                    "description": "Sets the maximum number and size of buffers used for reading large client request header. By default the number is 4, the size is 4k.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "number": {
                        "type": "integer"
                      },
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      }
                    },
                    "required": [
                      "number",
                      "size"
                    ]
                  },
                  "output_buffers": {
                    "description": "Sets the number and size of the buffers used for reading a response from a disk. By default the number is 2, the size is 32k.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "number": {
                        "type": "integer"
                      },
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      }
                    },
                    "required": [
                      "number",
                      "size"
                    ]
                  },
                  "subrequest_output_buffer_size": {
                    "description": "Sets the size of the buffer used for storing the response body of a subrequest. By default, the buffer size is equal to one memory page.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_buffer_size": {
                    "description": "Sets the size of the buffer used for reading the first part of the response received from the proxied server. By default, the buffer size is equal to one memory page.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_buffering": {
                    "description": "Enables or disables buffering of responses from the proxied server. By default is on.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "proxy_buffers": {
                    "description": "Sets the number and size of the buffers used for reading a response from the proxied server, for a single connection. By default the number is 8, the size is equal to one memory page.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "number": {
                        "type": "integer"
                      },
                      "size": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                      }
                    },
                    "required": [
                      "number",
                      "size"
                    ]
                  },
                  "proxy_busy_buffers_size": {
                    "description": "When buffering of responses from the proxied server is enabled, limits the total size of buffers that can be busy sending a response to the client while the response is not yet fully read. By default, size is limited by the size of two buffers set by the proxy_buffer_size and proxy_buffers directives.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_request_buffering": {
                    "description": "Enables or disables buffering of a client request body. By default is on.",
                    "type": "string",
                    "enum": [
                      "on",
                      "off"
                    ]
                  },
                  "proxy_max_temp_file_size": {
                    "description": "When buffering of responses from the proxied server is enabled, and the whole response does not fit into the buffers set by the proxy_buffer_size and proxy_buffers directives, a part of the response can be saved to a temporary file. This directive sets the maximum size of the temporary file. The size of data written to the temporary file at a time is set by the proxy_temp_file_write_size directive. The zero value disables buffering of responses to temporary files.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_temp_file_write_size": {
                    "description": "Limits the size of data written to a temporary file at a time, when buffering of responses from the proxied server to temporary files is enabled. By default, size is limited by two buffers set by the proxy_buffer_size and proxy_buffers directives. The maximum size of a temporary file is set by the proxy_max_temp_file_size directive.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "proxy_max_downstream_presend_inmemory_size": {
                    "description": "When used body filters such Modsecurity or Response size body filter, we always read all upstream data before sending client. Setting this parameter adjust maximum data in memory size, if 0 specified limit is not setted",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                  },
                  "log_type": {
                    "description": "Specifies logging mode for sowa-nginx. Default mode - file.",
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "kafka": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "group": {
                              "description": "Specifies which group of logs will use current settings.",
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "system",
                                  "error",
                                  "access"
                                ]
                              }
                            },
                            "id": {
                              "description": "Specifies client.id.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "broker": {
                              "description": "Initial list of brokers as a host:port separated by comma.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "topic": {
                              "description": "Specifies topic name.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^\\S*$"
                            },
                            "protocol": {
                              "description": "Specifies connection protocol. Plaintext by default.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "plaintext",
                                "ssl"
                              ]
                            },
                            "certificate": {
                              "description": "Specifies ssl.certificate.location",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "ca": {
                              "description": "Specifies ssl.ca.location.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "key": {
                              "description": "Specifies ssl.key.location.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "ciphers": {
                              "description": "Specifies ssl.cipher.suites. Same as default ssl ciphers.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "compression_codec": {
                              "description": "Compression codec to use for compressing message sets.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "none",
                                "gzip",
                                "snappy",
                                "lz4",
                                "zstd"
                              ]
                            },
                            "compression_level": {
                              "description": "Compression level parameter for algorithm selected by configuration property compression.codec. Higher values will result in better compression at the cost of more CPU usage.",
                              "type": "integer",
                              "minimum": -1,
                              "maximum": 12
                            },
                            "log_level": {
                              "description": "Logging level (syslog(3) levels).",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "debug": {
                              "description": "A comma-separated list of debug contexts to enable.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "max_messages": {
                              "description": "Maximum number of messages batched in one MessageSet.",
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 1000000
                            },
                            "pattern_file": {
                              "description": "Template file with custom log structure.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "escape": {
                              "description": "Defines if you need to escape variables used in pattern file.",
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "broker",
                            "topic"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "certificate"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "ca"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "key"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "protocol"
                                ],
                                "properties": {
                                  "protocol": {
                                    "const": "ssl"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "ciphers"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      },
                      "syslog": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "group": {
                              "description": "Specifies which group of logs will use current settings.",
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "system",
                                  "error",
                                  "access"
                                ]
                              }
                            },
                            "log_host": {
                              "description": "Specifies host for remote logging to syslog.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "log_port": {
                              "description": "Specifies port for remote logging to syslog. Default port - 514.",
                              "type": [
                                "number",
                                "string"
                              ]
                            }
                          }
                        }
                      },
                      "file": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "group": {
                              "description": "Specifies which group of logs will use current settings.",
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "system",
                                  "error",
                                  "access"
                                ]
                              }
                            }
                          }
                        }
                      },
                      "security": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Enables logging security security events (XSD, JSON, WSDL and other validators). False by default.",
                            "type": "boolean"
                          },
                          "threads_count": {
                            "description": "Specifies count of threads for thread pool, used for sending security events to syslog. Default is 16",
                            "type": "integer"
                          },
                          "hostname": {
                            "description": "Specifies hostname to dispaly in syslog event. Default is current hostname.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "appname": {
                            "description": "Specifies application name to dispaly in syslog event. Default is \"sowa-security\".",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "facility": {
                            "description": "Specifies facility for syslog event. Default is USER.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "KERN",
                              "USER",
                              "MAIL",
                              "DAEMON",
                              "AUTH",
                              "SYSLOG",
                              "LPR",
                              "NEWS",
                              "UUCP",
                              "CRON",
                              "AUTHPRIV",
                              "FTP",
                              "NTP",
                              "AUDIT",
                              "ALERT",
                              "CLOCK",
                              "LOCAL0",
                              "LOCAL1",
                              "LOCAL2",
                              "LOCAL3",
                              "LOCAL4",
                              "LOCAL5",
                              "LOCAL6",
                              "LOCAL7"
                            ]
                          },
                          "severity": {
                            "description": "Specifies severity for syslog event. Default is INFORMATIONAL.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "EMERGENCY",
                              "ALERT",
                              "CRITICAL",
                              "ERROR",
                              "WARNING",
                              "NOTICE",
                              "INFORMATIONAL",
                              "DEBUG"
                            ]
                          },
                          "target_host": {
                            "description": "Specifies host to send syslog event. Default is \"127.0.0.1\"",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "target_port": {
                            "description": "Specifies port to send syslog event. Default is 514.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 65535
                          },
                          "protocol": {
                            "description": "Specifies used protocol to send syslog event. Default is UDP.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "UDP",
                              "TCP"
                            ]
                          },
                          "msg_format": {
                            "description": "Specifies message format to send syslog event. Default is RFC_3164",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "RFC_3164",
                              "RFC_5424",
                              "RFC_5425"
                            ]
                          }
                        }
                      }
                    }
                  },
                  "cache": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "zone": {
                        "description": "Задаёт зону разделяемой памяти, используемой для кэширования. Одна и та же зона может использоваться в нескольких местах. В значении параметра можно использовать переменные (1.7.9). Параметр off запрещает кэширование, унаследованное с предыдущего уровня конфигурации.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "background_update": {
                        "description": "Позволяет запустить фоновый подзапрос для обновления просроченного элемента кэша, в то время как клиенту возвращается устаревший закэшированный ответ. Использование устаревшего закэшированного ответа в момент его обновления должно быть разрешено.",
                        "type": "boolean"
                      },
                      "bypass": {
                        "description": "Задаёт условия, при которых ответ не будет браться из кэша. Если значение хотя бы одного из строковых параметров непустое и не равно “0”, то ответ не берётся из кэша: $cookie_nocache $arg_nocache$arg_comment; $http_pragma    $http_authorization;\n",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "convert_head": {
                        "description": "Разрешает или запрещает преобразование метода “HEAD” в “GET” для кэширования. Если преобразование выключено, то необходимо, чтобы ключ кэширования включал в себя $request_method. Включено по умолчанию.",
                        "type": "boolean"
                      },
                      "key": {
                        "description": "Задаёт ключ для кэширования, например, \"$host$request_uri $cookie_user\". \"$scheme$proxy_host$request_uri\" по умолчанию.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "lock": {
                        "description": "Если включено, одновременно только одному запросу будет позволено заполнить новый элемент кэша, идентифицируемый согласно директиве key, передав запрос на проксируемый сервер. Остальные запросы этого же элемента будут либо ожидать появления ответа в кэше, либо освобождения блокировки этого элемента, в течение времени, заданного директивой lock_timeout. Выключено по умолчанию.",
                        "type": "boolean"
                      },
                      "lock_age": {
                        "description": "Задаёт таймаут для cache_lock. По истечении указанного времени запрос будет передан на проксируемый сервер, однако ответ не будет закэширован. По умолчанию 5 секунд.",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^([0-9]+[mMsS]{1})$"
                      },
                      "max_range_offset": {
                        "description": "Задаёт смещение в байтах для запросов с указанием диапазона запрашиваемых байт (byte-range requests). Если диапазон находится за указанным смещением, range-запрос будет передан на проксируемый сервер и ответ не будет закэширован. По умолчанию не используется.",
                        "type": "integer"
                      },
                      "methods": {
                        "description": "Если метод запроса клиента указан в этой директиве, то ответ будет закэширован. Методы “GET” и “HEAD” всегда добавляются в список, но тем не менее рекомендуется перечислять их явно.",
                        "type": "array",
                        "items": {
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "get",
                            "head",
                            "post"
                          ]
                        }
                      },
                      "min_uses": {
                        "description": "Задаёт число запросов, после которого ответ будет закэширован. По умолчанию - 1.",
                        "type": "integer"
                      },
                      "purge": {
                        "description": "Задаёт условия, при которых запрос будет считаться запросом на очистку кэша. Если значение хотя бы одного из строковых параметров непустое и не равно “0”, то запись в кэше с соответствующим ключом кэширования удаляется. В результате успешной операции возвращается ответ с кодом 204 (No Content). Если ключ кэширования запроса на очистку заканчивается звёздочкой (“*”), то все записи в кэше, соответствующие этой маске, будут удалены из кэша. Тем не менее, эти записи будут оставаться на диске или до момента удаления из-за отсутствия обращения к данным или до попытки клиента получить к ним доступ. \n",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "revalidate": {
                        "description": "Разрешает ревалидацию просроченных элементов кэша при помощи условных запросов с полями заголовка “If-Modified-Since” и “If-None-Match”. По умолчанию выключено",
                        "type": "boolean"
                      },
                      "use_stale": {
                        "description": "Определяет, в каких случаях можно использовать устаревший закэшированный ответ. Параметры директивы совпадают с параметрами директивы next_upstream.",
                        "type": "array",
                        "items": {
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "error",
                            "timeout",
                            "invalid_header",
                            "updating",
                            "http_500",
                            "http_502",
                            "http_503",
                            "http_504",
                            "http_403",
                            "http_404",
                            "http_429"
                          ]
                        }
                      },
                      "valid": {
                        "type": "array",
                        "items": {
                          "description": "Задаёт время кэширования для разных кодов ответа. Например, \"200 302 10m\";",
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      }
                    },
                    "required": [
                      "zone"
                    ]
                  },
                  "healthcheck_dynamic": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "initial_state_param_file": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                      },
                      "manual_state_var_refresh_interval": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                      },
                      "endpoints": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "url": {
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "response": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "code": {
                                  "description": "Specifies an array of error codes by which templates will be generated.",
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  }
                                },
                                "pattern_file": {
                                  "description": "Specifies pattern file which will be used as response body.",
                                  "type": "string",
                                  "enum": [
                                    "hc_pattern_default.json",
                                    "hc_pattern_profile_default.json",
                                    "hc_pattern_service_default.json"
                                  ]
                                },
                                "custom_pattern_file": {
                                  "description": "Specifies rule file which describes how to fill pattern file.",
                                  "type": "string",
                                  "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                },
                                "rules_file": {
                                  "description": "Specifies rule file which describes how to fill pattern file. Default - rules file from system resources.",
                                  "type": "string",
                                  "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                },
                                "content_type": {
                                  "description": "Specifies content type for response header. Default - none.",
                                  "type": "string"
                                }
                              }
                            },
                            "upstream_check_type": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "ANY_UPSTREAM_UP",
                                "ALL_UPSTREAM_UP",
                                "ANY_UPSTREAM_UP_OR_DRAIN",
                                "ALL_UPSTREAM_UP_OR_DRAIN"
                              ]
                            },
                            "service_id": {
                              "description": "Binded service id",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "upstream_filter": {
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "disable_access_log": {
                              "description": "Disable writing access log, by default -false",
                              "type": "boolean"
                            },
                            "disable_error_log": {
                              "description": "Disable writing error log, default false",
                              "type": "boolean"
                            },
                            "disable_gathering_stats": {
                              "description": "Disable gathering stat, default false",
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "url",
                            "response"
                          ]
                        }
                      }
                    }
                  }
                },
                "allOf": [
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "alias"
                      ],
                      "properties": {
                        "alias": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "root"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "root"
                      ],
                      "properties": {
                        "root": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "alias"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "alias"
                      ],
                      "properties": {
                        "alias": {
                          "pattern": ".+"
                        }
                      }
                    },
                    "else": {
                      "not": {
                        "required": [
                          "absolute_alias_path"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "index"
                      ],
                      "properties": {
                        "index": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "response_code"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "limit_requests"
                      ],
                      "properties": {
                        "limit_requests": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "limit_req"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "limit_req"
                      ],
                      "properties": {
                        "limit_req": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "limit_requests"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_buffering"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_buffers"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_busy_buffers_size"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_request_buffering"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_max_temp_file_size"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_temp_file_write_size"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "http_version"
                      ],
                      "properties": {
                        "http_version": {}
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "proxy_max_downstream_presend_inmemory_size"
                        ]
                      }
                    }
                  },
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        ".."
                      ],
                      "properties": {
                        "..": {
                          "type": "object",
                          "required": [
                            "listen"
                          ],
                          "properties": {
                            "listen": {
                              "pattern": ".+"
                            }
                          }
                        }
                      }
                    },
                    "else": {
                      "not": {
                        "required": [
                          "healthcheck_dynamic"
                        ]
                      }
                    }
                  }
                ]
              }
            },
            "required": [
              "id",
              "url"
            ]
          }
        },
        "service_cache": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "storages": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "name": {
                    "description": "Defines the name of storage.",
                    "type": "string"
                  },
                  "space": {
                    "description": "Defines the size of object storage. Default 10m",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[kKmM]{1})$"
                  },
                  "entries": {
                    "description": "Defines the count of simultaneously stored objects. Default 8096",
                    "type": "integer"
                  },
                  "remove_time": {
                    "description": "Defines the time of storing objects. Default dont remove at all",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^([0-9]+[mMsS]{1})$"
                  }
                },
                "required": [
                  "name"
                ]
              }
            },
            "instances": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "description": "Specifies the unique id for the service.",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^[^.\\/\\\\()]+$"
                  },
                  "name": {
                    "description": "Human readable Service identifier printed in log messages",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "profile_version": {
                    "description": "Specifies profile version of this service",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "description": {
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "listen": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "address": {
                          "description": "specifies ip/hostname on which the socket will listen.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "port": {
                          "description": "specifies port on which the socket will listen",
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 65535
                        },
                        "allow_http2": {
                          "description": "Allow to accept http2 connection. Default - false",
                          "type": "boolean"
                        },
                        "proxy_protocol": {
                          "description": "Accept proxy protocol. Http requests will not be handler with this flag. Default - false",
                          "type": "boolean"
                        },
                        "http2_only": {
                          "description": "Allow to pass only http2 protocol connection. Default - off",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "ssl": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "sspi": {
                              "description": "Enables GOST TLS mode. Default id false.",
                              "type": "boolean"
                            },
                            "client_verify_local_crl_only": {
                              "description": "GOST mode. Specifies whether to check the certificate status locally (otherwise check online). Default is \"off\" (online check).",
                              "type": "string",
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "buffer_size": {
                              "description": "GOST mode. Specifies payload length in TLS record (min 1024, max 16384). Default is 16384 bytes.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^([0-9]+[kK]{1})|([0-9]+)$"
                            },
                            "certificate": {
                              "description": "specifies name of the certificate wich will be used. Certificate must be placed in \"resource\" directory.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "certificate_key": {
                              "description": "specifies name of the certificate key wich will be used. Certificate key must be placed in \"resource\" directory.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "password_file": {
                              "description": "specifies name of the password file with secret keys for \"certificate_key\". Password file must be placed in \"resource\" directory.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "client_certificate": {
                              "description": "specifies name of the client certificate wich will be used. Client Certificate must be placed in \"resource\" directory.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "verify_client": {
                              "description": "Enables verification of client certificates. Default - no",
                              "type": "string"
                            },
                            "ocsp": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "enabled": {
                                  "description": "Enables OCSP validation of the client certificate chain",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "enum": [
                                    "on",
                                    "off"
                                  ]
                                },
                                "depth": {
                                  "description": "Specify depth of certificate validation.",
                                  "type": "integer",
                                  "minimum": 1
                                },
                                "mode": {
                                  "description": "Specify mode. In strict mode request will be blocked in case unsuccessfull certiticate checking, in flexible mode - request will not be blocked. Strict by default.",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "enum": [
                                    "strict",
                                    "flexible"
                                  ]
                                },
                                "cache": {
                                  "description": "Sets name and size of the cache that stores client certificates status for OCSP validation. The cache is shared between all worker processes",
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "name": {
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    },
                                    "size": {
                                      "type": [
                                        "number",
                                        "string"
                                      ],
                                      "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                    },
                                    "lifetime": {
                                      "description": "Specifies cache lifetime. 3600 seconds by default",
                                      "type": [
                                        "number",
                                        "string"
                                      ],
                                      "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                                    }
                                  },
                                  "required": [
                                    "name",
                                    "size"
                                  ]
                                },
                                "use_cert_responder": {
                                  "description": "Defines use or not responder from certificate(if specified). False by default",
                                  "type": "boolean"
                                },
                                "responder_timeout": {
                                  "description": "Specifies responder timeout. 60000 milliseconds by default",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                                },
                                "responders": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "regex;(.+)": {
                                      "type": "array",
                                      "uniqueItems": true,
                                      "items": {
                                        "description": "Specifies the URL of the OCSP responder specified in the “Authority Information Access” certificate extension for validation of client certificates. Only http:// OCSP responders are supported",
                                        "type": [
                                          "number",
                                          "string"
                                        ],
                                        "pattern": "^(?:http:\\/\\/).+$"
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "enabled",
                                "depth"
                              ]
                            },
                            "verify_dn_trusted_path": {
                              "description": "Turn on verification of client dn. Use this file to match all regex dn from this file with dn of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "verify_client_error_code": {
                              "description": "Defines the response code if verification client certificate failed. Default value is \"495\"(400)",
                              "type": "integer"
                            },
                            "verify_fingerprint_trusted_path": {
                              "description": "Turn on verification of client fingerprint. Use this file to match all fingerprints from file with fingerprint of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "verify_depth": {
                              "description": "Sets the verification depth in the client certificates chain. Default - 1",
                              "type": "integer"
                            },
                            "protocols": {
                              "description": "specifies used ciphers. The default value is \"LSv1 TLSv1.1 TLSv1.2\" for RSA, and \"TLSv1\" for GOST",
                              "type": "array",
                              "uniqueItems": true,
                              "items": {
                                "type": "string"
                              }
                            },
                            "ciphers": {
                              "description": "specifies group of ciphes. The default value is \"HIGH:!aNULL:!MD5\".",
                              "type": "array",
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "prefix": {
                                    "type": "string",
                                    "enum": [
                                      "!",
                                      "+",
                                      "-"
                                    ]
                                  },
                                  "value": {
                                    "type": "array",
                                    "uniqueItems": true,
                                    "items": {
                                      "type": "string",
                                      "enum": [
                                        "DEFAULT",
                                        "COMPLEMENTOFDEFAULT",
                                        "ALL",
                                        "COMPLEMENTOFALL",
                                        "HIGH",
                                        "MEDIUM",
                                        "LOW",
                                        "EXP",
                                        "EXPORT",
                                        "EXPORT40",
                                        "EXPORT56",
                                        "eNULL",
                                        "NULL",
                                        "aNULL",
                                        "kRSA",
                                        "RSA",
                                        "kDHr",
                                        "kDHd",
                                        "kDH",
                                        "kDHE",
                                        "kEDH",
                                        "DHE",
                                        "EDH",
                                        "ADH",
                                        "DH",
                                        "kECDHr",
                                        "kECDHe",
                                        "kECDH",
                                        "kECDHE",
                                        "kEECDH",
                                        "ECDHE",
                                        "EECDH",
                                        "AECDH",
                                        "ECDH",
                                        "aRSA",
                                        "aDSS",
                                        "DSS",
                                        "aDH",
                                        "aECDH",
                                        "aECDSA",
                                        "ECDSA",
                                        "kFZA",
                                        "aFZA",
                                        "eFZA",
                                        "FZA",
                                        "TLSv1.2",
                                        "TLSv1",
                                        "SSLv3",
                                        "SSLv2",
                                        "AES128",
                                        "AES256",
                                        "AES",
                                        "AESGCM",
                                        "CAMELLIA128",
                                        "CAMELLIA256",
                                        "CAMELLIA",
                                        "3DES",
                                        "DES",
                                        "RC4",
                                        "RC2",
                                        "IDEA",
                                        "SEED",
                                        "MD5",
                                        "SHA1",
                                        "SHA",
                                        "SHA256",
                                        "SHA384",
                                        "aGOST",
                                        "aGOST01",
                                        "aGOST94",
                                        "kGOST",
                                        "GOST94",
                                        "GOST89MAC",
                                        "PSK",
                                        "SUITEB128",
                                        "SUITEB128ONLY",
                                        "SUITEB192",
                                        "@STRENGTH",
                                        "NULL-SHA256"
                                      ]
                                    }
                                  }
                                },
                                "required": [
                                  "value"
                                ]
                              }
                            },
                            "ciphers_str": {
                              "description": "specifies string of ciphers.",
                              "type": "string"
                            },
                            "dhparam": {
                              "description": "Specifies a file with DH parameters for DHE ciphers and enable usage of DHE ciphers.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "session_timeout": {
                              "description": "specifies timeout of the ssl session. The default value is \"10m\"",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                            },
                            "session_cache": {
                              "description": "specifies cache size for ssl session. The default value evaluates automatically.",
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "off",
                                    "none",
                                    "builtin",
                                    "shared"
                                  ]
                                },
                                "name": {
                                  "type": "string"
                                },
                                "size": {
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                }
                              },
                              "required": [
                                "type"
                              ]
                            },
                            "reject_handshake": {
                              "description": "specifies whether reject all SSL handshake with a different server name (strict SNI check). Default is false.",
                              "type": "boolean"
                            },
                            "stapling": {
                              "description": "enables or disables stapling of OCSP responses by the server. Default - false.",
                              "type": "boolean"
                            },
                            "stapling_file": {
                              "description": "when set, the stapled OCSP response will be taken from the specified file instead of querying the OCSP responder specified in the server certificate.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "stapling_responder": {
                              "description": "overrides the URL of the OCSP responder specified in the “Authority Information Access” certificate extension.",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "stapling_verify": {
                              "description": "enables or disables verification of OCSP responses by the server. For verification to work, the certificate of the server certificate issuer, the root certificate, and all intermediate certificates should be configured as trusted using the trusted_certificate directive. Default - false.",
                              "type": "boolean"
                            },
                            "trusted_certificate": {
                              "description": "specifies a file with trusted CA certificates in the PEM format used to verify client certificates and OCSP responses if stapling is enabled.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            }
                          },
                          "required": [
                            "certificate"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "stapling_verify"
                                ],
                                "properties": {
                                  "stapling_verify": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "then": {
                                "required": [
                                  "trusted_certificate"
                                ]
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "verify_dn_trusted_path"
                                ],
                                "properties": {
                                  "verify_dn_trusted_path": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "verify_client_error_code"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "verify_fingerprint_trusted_path"
                                ],
                                "properties": {
                                  "verify_fingerprint_trusted_path": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "verify_client_error_code"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ciphers_str"
                                ],
                                "properties": {
                                  "ciphers_str": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "ciphers"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "ciphers"
                                ],
                                "properties": {
                                  "ciphers": {}
                                }
                              },
                              "then": {
                                "not": {
                                  "required": [
                                    "ciphers_str"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "certificate"
                                ],
                                "properties": {
                                  "certificate": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "stapling"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "stapling"
                                ],
                                "properties": {
                                  "stapling": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "stapling_file"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "stapling"
                                ],
                                "properties": {
                                  "stapling": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "stapling_responder"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "stapling"
                                ],
                                "properties": {
                                  "stapling": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "stapling_verify"
                                  ]
                                }
                              }
                            },
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "stapling_verify"
                                ],
                                "properties": {
                                  "stapling_verify": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "trusted_certificate"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      }
                    }
                  },
                  "hostname": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "url": {
                    "description": "Defines the relative URL by which the service will allow reading from queue.",
                    "type": "string"
                  },
                  "phase": {
                    "description": "Defines the phase, on which we need to use cache. Default rewrite. When service is defined not in service_http_proxy use content by default",
                    "type": "string",
                    "enum": [
                      "access_handler",
                      "body_filter",
                      "rewrite_handler"
                    ]
                  },
                  "store_name": {
                    "description": "Defines the name of storage",
                    "type": "string"
                  },
                  "store_key": {
                    "description": "Defines key with which objects will store. Default $request_id",
                    "type": "string"
                  },
                  "default_success_status": {
                    "description": "Defines default success status. Default 200",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^\\d{3}$"
                  },
                  "default_empty_queue_status": {
                    "description": "Defines default status in case empty queue. Default 403",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^\\d{3}$"
                  },
                  "default_already_exists_status": {
                    "description": "Defines default status in case when object already exists with this key. Default 403",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^\\d{3}$"
                  },
                  "default_message_unknown_status": {
                    "description": "Defines default status when in case object with this key doesn't exists. Default 404",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^\\d{3}$"
                  },
                  "default_error_status": {
                    "description": "Defines default status for internal errors. Default 500",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^\\d{3}$"
                  },
                  "success_result_pattern": {
                    "description": "Defines pattern for success result response",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "success_result_pattern_file": {
                    "description": "Defines pattern file for success result response",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                  },
                  "empty_queue_pattern": {
                    "description": "Defines pattern for empty queue response",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "empty_queue_pattern_file": {
                    "description": "Defines pattern file for empty queue response",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                  },
                  "default_error_pattern": {
                    "description": "Defines pattern for internal error response",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "default_error_pattern_file": {
                    "description": "Defines pattern file for internal error response",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                  },
                  "already_exists_pattern": {
                    "description": "Defines pattern for already exists object response",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "already_exists_pattern_file": {
                    "description": "Defines pattern file for already exists object response",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                  },
                  "message_unknown_pattern": {
                    "description": "Defines pattern for unknown object response",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "message_unknown_pattern_file": {
                    "description": "Defines pattern file for unknown object response",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                  },
                  "send_error": {
                    "description": "Defines sending error on non content phase or not. Default true",
                    "type": "boolean"
                  },
                  "response_content_type": {
                    "description": "Defines response content-type. Default \"application/json\"",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "configuration_file": {
                    "description": "Defines path to configuration file with definitions of existing actions",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                  },
                  "allowed_queries": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "method": {
                          "type": "string",
                          "enum": [
                            "get",
                            "head",
                            "post",
                            "put",
                            "options",
                            "trace",
                            "patch",
                            "delete"
                          ]
                        },
                        "decodeUrl": {
                          "description": "By default mds use url-decoded request parameters",
                          "type": "boolean"
                        },
                        "strict_params_check": {
                          "description": "False by default. Allows to block undescribed params and paramless requests.",
                          "type": "boolean"
                        },
                        "undescribed": {
                          "description": "False by default when no params, true when params present. Deny or pass request with undescribed request query params",
                          "type": "boolean"
                        },
                        "params": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "pattern": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "pattern": "^((?!\\(\\?i\\)|\\(\\?-i\\)).)*$"
                              }
                            },
                            "required": [
                              "name",
                              "pattern"
                            ]
                          }
                        }
                      },
                      "required": [
                        "method"
                      ]
                    }
                  },
                  "optional": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "log_level": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "debug",
                          "info",
                          "notice",
                          "warn",
                          "error",
                          "crit",
                          "alert",
                          "off"
                        ]
                      },
                      "group_access_log": {
                        "description": "Specifies whether group or not the access log by status codes (2xx, 3xx, 4xx, 5xx, 404, 413, 429, 499, 500). Default is false.",
                        "type": "boolean"
                      },
                      "log_format": {
                        "description": "Specifies which format to use.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "client_header_timeout": {
                        "description": "Sets the timeout for reading headers from the client. The default value is \"60s\".",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                      },
                      "client_body_timeout": {
                        "description": "Sets the timeout for reading body from the client. The default value is \"60s\".",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                      },
                      "keepalive_timeout": {
                        "description": "Defines a timeout duaring which a connection will stay open. The default value is \"75s\".",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                      },
                      "keepalive_time": {
                        "description": "Limits the maximum time during which requests can be processed through one keep-alive connection. After this time is reached, the connection is closed following the subsequent request processing. By default -  timeout 1h",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                      },
                      "keepalive_requests": {
                        "description": "Sets the maximum number of the request duaring keep-alive timeiut. The default value is \"10000\".",
                        "type": "integer"
                      },
                      "send_timeout_to_client": {
                        "description": "Sets the timeout for sending answer to the client. The default value is \"60s\".",
                        "type": [
                          "number",
                          "string"
                        ],
                        "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                      },
                      "session": {
                        "description": "Enables http session support. The default value is \"off\".",
                        "type": "boolean"
                      },
                      "session_timeout": {
                        "description": "Value in seconds. Default value is 60.",
                        "type": "integer"
                      },
                      "session_cookie_name": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "session_redirect_timeout": {
                        "description": "Value in seconds. Must not be larger than session timeout. Default value is 5.",
                        "type": "integer"
                      },
                      "session_show": {
                        "type": "boolean"
                      },
                      "session_cache": {
                        "description": "specifies cache size for ssl session. The default value evaluates automatically.",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "type": {
                            "type": "string",
                            "enum": [
                              "off",
                              "none",
                              "builtin",
                              "shared"
                            ]
                          },
                          "name": {
                            "type": "string"
                          },
                          "size": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      "pipelined_requests": {
                        "description": "Enables/disable pipelined requests, by default - on",
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "http2_only": {
                        "description": "Allow to pass only http2 protocol connection. Default - off",
                        "type": "string",
                        "enum": [
                          "on",
                          "off"
                        ]
                      },
                      "upload_size_limit": {
                        "description": "Specifies maximum size of the request body. Parameter \"drop\" specifies whether drop connection or not.",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "size": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "drop": {
                            "type": "string",
                            "enum": [
                              "on",
                              "off"
                            ]
                          },
                          "enable": {
                            "description": "Enables limit request body. Default \"true\"",
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "size"
                        ]
                      },
                      "download_size_limit": {
                        "description": "Specifies maximum size of the response body. The connection will be dropped when size will be exceeded.",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "size": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "drop": {
                            "type": "string",
                            "enum": [
                              "on",
                              "off"
                            ]
                          },
                          "status": {
                            "description": "Specifies the status code when response size was exceeded. By default is 413.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(4|5)[0-9]{2}$"
                          }
                        },
                        "required": [
                          "size"
                        ]
                      },
                      "kafka_logger_id": {
                        "description": "Specifies service id to handle event.",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "set_variable": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "name": {
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "value": {
                              "type": [
                                "number",
                                "string"
                              ]
                            }
                          },
                          "required": [
                            "name",
                            "value"
                          ]
                        }
                      },
                      "limit_req": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Enable limit req module",
                            "type": "boolean"
                          },
                          "rate": {
                            "description": "The count of requests which will be handled per time interval.",
                            "type": "number"
                          },
                          "rate_interval": {
                            "description": "Time interval for request rate measuring. Specify 's' for second and 'm' for minute. By default is 's'. Hint - if you need '0.5r/s', you can specify '30r/m'.",
                            "type": "string",
                            "enum": [
                              "s",
                              "m"
                            ]
                          },
                          "size": {
                            "description": "Shared memory zone used to store the state of each IP address and how often it has accessed a request limited URL. The default value is \"10m\"",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})$"
                          },
                          "burst": {
                            "description": "Defines how many requests a client can make in excess of the rate. The default value is \"0\"",
                            "type": "integer"
                          },
                          "cpu_limit": {
                            "description": "Defines maximum CPU load percentage. After exceeding limit, all incoming connections will be declined.",
                            "type": "integer"
                          },
                          "mem_limit": {
                            "description": "Defines maximum memory load percentage. After exceeding limit, all incoming connections will be declined.",
                            "type": "integer"
                          },
                          "target": {
                            "description": "Specifies a target for check. You can use predefined values 'src_ip' and 'service' or any nginx variables using prefix '$' (e.g. $server_port).",
                            "type": "string",
                            "pattern": "^((src_ip)|(service)|(request_method)|(\\$[a-z_]+))$"
                          },
                          "policy_type": {
                            "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                            "type": "string",
                            "enum": [
                              "allow",
                              "forbid"
                            ]
                          },
                          "exclude_ip": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                            }
                          },
                          "nodelay": {
                            "description": "default false",
                            "type": "boolean"
                          },
                          "forbid_action": {
                            "description": "Specifies location on which will be redirected",
                            "type": "string"
                          },
                          "status_code": {
                            "description": "Defines the response code if the limit is exceeded. Default value is \"413\".",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^\\d{3}$"
                          },
                          "dry_run": {
                            "description": "Enables dry run mode. Default is off.",
                            "type": "boolean"
                          },
                          "condition": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "condition_var": {
                                "type": "string",
                                "pattern": "^\\$.+$"
                              },
                              "condition_value": {
                                "type": "string"
                              },
                              "type": {
                                "type": "string",
                                "enum": [
                                  "ifall",
                                  "ifany",
                                  "if"
                                ]
                              },
                              "expression": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "variable": {
                                      "type": "string",
                                      "pattern": "^\\$.+$"
                                    },
                                    "operation": {
                                      "type": "string",
                                      "enum": [
                                        ">=",
                                        "=",
                                        ">",
                                        "<",
                                        "<=",
                                        "!=",
                                        "~",
                                        "~*",
                                        "!~",
                                        "!~*",
                                        "-f",
                                        "!-f",
                                        "-d",
                                        "!-d",
                                        "-e",
                                        "!-e",
                                        "-x",
                                        "!-x"
                                      ]
                                    },
                                    "value": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "variable"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "condition_var",
                              "condition_value",
                              "type"
                            ]
                          }
                        },
                        "required": [
                          "enabled",
                          "target"
                        ]
                      },
                      "limit_requests": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Enable limit req module",
                            "type": "boolean"
                          },
                          "status_code": {
                            "description": "Defines the response code if the limit is exceeded. Default value is \"413\".",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^\\d{3}$"
                          },
                          "dry_run": {
                            "description": "Enables dry run mode. Default is off.",
                            "type": "boolean"
                          },
                          "limit_req": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "rate": {
                                  "description": "The count of requests which will be handled per time interval.",
                                  "type": "number"
                                },
                                "rate_interval": {
                                  "description": "Time interval for request rate measuring. Specify 's' for second and 'm' for minute. By default is 's'. Hint - if you need '0.5r/s', you can specify '30r/m'.",
                                  "type": "string",
                                  "enum": [
                                    "s",
                                    "m"
                                  ]
                                },
                                "size": {
                                  "description": "Shared memory zone used to store the state of each IP address and how often it has accessed a request limited URL. The default value is \"10m\"",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^([0-9]+[kKmM]{1})$"
                                },
                                "burst": {
                                  "description": "Defines how many requests a client can make in excess of the rate. The default value is \"0\"",
                                  "type": "integer"
                                },
                                "cpu_limit": {
                                  "description": "Defines maximum CPU load percentage. After exceeding limit, all incoming connections will be declined.",
                                  "type": "integer"
                                },
                                "mem_limit": {
                                  "description": "Defines maximum memory load percentage. After exceeding limit, all incoming connections will be declined.",
                                  "type": "integer"
                                },
                                "target": {
                                  "description": "Specifies a target for check. You can use predefined values 'src_ip' and 'service' or any nginx variables using prefix '$' (e.g. $server_port).",
                                  "type": "string",
                                  "pattern": "^((src_ip)|(service)|(request_method)|(\\$[a-z_]+))$"
                                },
                                "policy_type": {
                                  "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                                  "type": "string",
                                  "enum": [
                                    "allow",
                                    "forbid"
                                  ]
                                },
                                "exclude_ip": {
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                                  }
                                },
                                "nodelay": {
                                  "description": "default false",
                                  "type": "boolean"
                                },
                                "forbid_action": {
                                  "description": "Specifies location on which will be redirected",
                                  "type": "string"
                                },
                                "condition": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "condition_var": {
                                      "type": "string",
                                      "pattern": "^\\$.+$"
                                    },
                                    "condition_value": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "type": "string",
                                      "enum": [
                                        "ifall",
                                        "ifany",
                                        "if"
                                      ]
                                    },
                                    "expression": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "additionalProperties": false,
                                        "properties": {
                                          "variable": {
                                            "type": "string",
                                            "pattern": "^\\$.+$"
                                          },
                                          "operation": {
                                            "type": "string",
                                            "enum": [
                                              ">=",
                                              "=",
                                              ">",
                                              "<",
                                              "<=",
                                              "!=",
                                              "~",
                                              "~*",
                                              "!~",
                                              "!~*",
                                              "-f",
                                              "!-f",
                                              "-d",
                                              "!-d",
                                              "-e",
                                              "!-e",
                                              "-x",
                                              "!-x"
                                            ]
                                          },
                                          "value": {
                                            "type": "string"
                                          }
                                        },
                                        "required": [
                                          "variable"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "condition_var",
                                    "condition_value",
                                    "type"
                                  ]
                                }
                              },
                              "required": [
                                "target"
                              ]
                            }
                          }
                        },
                        "required": [
                          "enabled",
                          "limit_req"
                        ]
                      },
                      "robot_mitigation": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Enables defense against HTTP robot attacks.",
                            "type": "boolean"
                          },
                          "blacklist": {
                            "description": "Means if a client has failed for N times, this client will be added into blacklist. Default 5",
                            "type": "integer"
                          },
                          "mode": {
                            "description": "Robot Mitigation will return a user-defined js code or predefined flash file to the client. Default js",
                            "type": "string",
                            "enum": [
                              "js",
                              "swf"
                            ]
                          },
                          "timeout": {
                            "description": "Sets the time for the next challenge to be initiated, in seconds. Default 60",
                            "type": "integer"
                          },
                          "ajax": {
                            "description": "This directive sets if challenge for ajax requests based on XMLRequest header. Default off",
                            "type": "boolean"
                          },
                          "policy_type": {
                            "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                            "type": "string",
                            "enum": [
                              "allow",
                              "forbid"
                            ]
                          },
                          "exclude_ip": {
                            "description": "Specifies the IP addresses, which will be excluded from whitelist",
                            "type": "array",
                            "items": {
                              "type": "string",
                              "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                            }
                          },
                          "ua_whitelist": {
                            "description": "This directives specifies the User-Agent whitelist.",
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "enabled"
                        ]
                      },
                      "ip_behavior": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "sample_base": {
                            "description": "Specifies the number of the request for a valid sample",
                            "type": "number"
                          },
                          "size": {
                            "description": "Size means how much memory will use by zone. The default value is \"10m\"",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})$"
                          },
                          "sample_cycle": {
                            "description": "Specifies the cyclog of the sampling, unit could be s (for second) and m (for minute).",
                            "type": "string",
                            "pattern": "^([0-9]+[mMsS]{1})$"
                          },
                          "sensitive": {
                            "description": "Specifies sensitive locations. If a location is defined as a sensitive location, all the resources under this location will be treated as sensitive. Default false",
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "sample_base",
                          "size",
                          "sample_cycle"
                        ]
                      },
                      "cookie_poisoning": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Enables monitoring the Set-Cookies headers and the cookie values in the response from server side.",
                            "type": "boolean"
                          },
                          "action": {
                            "description": "This directive specifies the action when cookie values are detected changed.  Default block",
                            "type": "string",
                            "pattern": "^block|pass|remove|blacklist,[0-9]+$"
                          },
                          "log": {
                            "type": "boolean"
                          },
                          "policy_type": {
                            "description": "Specifies the policy type. If 'allow' then action will be executed for ip in 'exclude_ip'. If 'forbid' then action will be executed for all ip, except ip in 'exclude_ip'. Default 'forbid'",
                            "type": "string",
                            "enum": [
                              "allow",
                              "forbid"
                            ]
                          },
                          "exclude_ip": {
                            "description": "Specifies the IP addresses, which will be excluded from whitelist",
                            "type": "array",
                            "items": {
                              "type": "string",
                              "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                            }
                          },
                          "include_ip": {
                            "description": "Specifies the IP addresses, which will be included to whitelist",
                            "type": "array",
                            "items": {
                              "type": "string",
                              "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/\\d{1,2}){0,1}$"
                            }
                          },
                          "ua_whitelist": {
                            "description": "This directives specifies the User-Agent whitelist.",
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "enabled"
                        ]
                      },
                      "gzip": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Enables response compression by gzip method.",
                            "type": "boolean"
                          },
                          "optional": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "level": {
                                "description": "Sets the compression level. The default value is \"5\".",
                                "type": "integer",
                                "enum": [
                                  1,
                                  2,
                                  3,
                                  4,
                                  5,
                                  6,
                                  7,
                                  8,
                                  9
                                ]
                              },
                              "types": {
                                "description": "Sets the mime-types for which compression is applied. The default value is \"text/html\".",
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "buffer_count": {
                                "description": "Sets the count of buffers in wich the response will be placed. The default value is \"32\".",
                                "type": "integer"
                              },
                              "buffer_size": {
                                "description": "Sets the buffer size in wich the response will be placed. The default value is memory page size.",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                              },
                              "exclude": {
                                "description": "Sets the list of the User-Agent specified by regular expressions for which compression will be disabled.",
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "min_length": {
                                "description": "Sets the minimum length of the response for which compression will be applied. The default value is \"20\".",
                                "type": "integer"
                              },
                              "http_version": {
                                "description": "Specifies the minimum version for the request necessary for the response compression. The default value is \"1.0\"",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  1.0,
                                  1.1
                                ]
                              },
                              "proxied": {
                                "description": "Enables or disables gzipping of responses for proxied requests depending on the request and response.",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  false,
                                  "expired",
                                  "no-cache",
                                  "no-store",
                                  "private",
                                  "no_last_modified",
                                  "no_etag",
                                  "auth",
                                  "any"
                                ]
                              },
                              "vary": {
                                "description": "Enables or disables inserting the 'Vary: Accept-Encoding' response header field if the directives gzip, gzip_static, or gunzip are active.",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  true,
                                  false
                                ]
                              },
                              "static": {
                                "description": "Enables or disables checking the existence of precompressed files. With the \"always\" value, gzipped file is used in all cases, without checking if the client supports it. Default - off",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  true,
                                  false,
                                  "always"
                                ]
                              }
                            }
                          }
                        },
                        "required": [
                          "enabled"
                        ]
                      },
                      "event_hook": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Allows to enable/disable EVH for service. Default value is \"True\".",
                            "type": "boolean"
                          },
                          "stage": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "description": "Specifies the stage for log.",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "enum": [
                                    "client_request",
                                    "client_response",
                                    "upstream_request",
                                    "upstream_response"
                                  ]
                                },
                                "log_file": {
                                  "description": "Specifies the log file name. Default is /sowalogs/<profile name>/services/service_http_proxy/service_http_proxy_<id>/<stage>/$request_id.log",
                                  "type": "string"
                                },
                                "pattern_file": {
                                  "description": "Specifies the pattern file.",
                                  "type": "string"
                                },
                                "max_size": {
                                  "description": "Specifies the threshold after exceeding which the event will bw written to temp file in directory specified by \"temp_path\". Default is not specified.",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                }
                              },
                              "required": [
                                "name"
                              ]
                            }
                          },
                          "logger_service": {
                            "description": "Specifies service type to handle event.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "logger_service_type": {
                            "description": "Specifies when loging making synchronous or asynchronous",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "sync",
                              "async"
                            ]
                          },
                          "logger_id": {
                            "description": "Specifies service id to handle event.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "logger_read_timeout": {
                            "description": "Specifies logger read timeout. Default 1s",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                          },
                          "logger_send_timeout": {
                            "description": "Specifies logger send timeout. Default 1s",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                          },
                          "logger_connect_timeout": {
                            "description": "Specifies logger connect timeout. Default 1s",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                          },
                          "logger_client_body_timeout": {
                            "description": "Specifies logger client body timeout. Default 1s",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                          },
                          "logger_buffer_size": {
                            "description": "Specifies logger buffer size for writing to service timeout. Default 16k;",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "logger_max_memory": {
                            "description": "Specifies async logger max in-memory size for event. Default 2M, if limit exceeded event dumped to temp file;",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "log_in_file": {
                            "description": "Specifies log in to the file or not.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "on",
                              "off"
                            ]
                          },
                          "temp_path": {
                            "description": "Specifies the path for saving temp data. Default is /sowarun/<profile name>/service_http_proxy/service_http_proxy_<id>",
                            "type": "string"
                          }
                        },
                        "allOf": [
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "enabled"
                              ],
                              "properties": {
                                "enabled": {
                                  "const": false
                                }
                              }
                            },
                            "then": {
                              "required": []
                            },
                            "else": {
                              "required": [
                                "stage"
                              ]
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "logger_service"
                              ],
                              "properties": {
                                "logger_service": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "logger_read_timeout"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "logger_service"
                              ],
                              "properties": {
                                "logger_service": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "logger_send_timeout"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "logger_service"
                              ],
                              "properties": {
                                "logger_service": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "logger_connect_timeout"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "logger_service"
                              ],
                              "properties": {
                                "logger_service": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "logger_client_body_timeout"
                                ]
                              }
                            }
                          }
                        ]
                      },
                      "limit_conn": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Enable limit conn module",
                            "type": "boolean"
                          },
                          "count": {
                            "description": "The count of connections which will be handled.",
                            "type": "number"
                          },
                          "size": {
                            "description": "Shared memory zone used to store the state of each target and how often it has create connection. The default value is \"10m\"",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})$"
                          },
                          "target": {
                            "description": "Specifies a target for check.",
                            "type": "string"
                          },
                          "status_code": {
                            "description": "Defines the response code if the limit is exceeded. Default value is \"503\".",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^\\d{3}$"
                          },
                          "dry_run": {
                            "description": "Enables dry run mode. Default is off.",
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "enabled",
                          "count",
                          "target"
                        ]
                      },
                      "log_masking_rules": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "log_type": {
                              "description": "Which log type will be masked",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "event",
                                "security",
                                "all"
                              ]
                            },
                            "object": {
                              "description": "Specifies in which part of data masking will be maked",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "request_header",
                                "response_header",
                                "request_body",
                                "response_body",
                                "request_cookie",
                                "response_cookie"
                              ]
                            },
                            "cookie": {
                              "description": "Individual cookie name wich will be masked",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "header": {
                              "description": "Header name which will be masked",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "mask_symbol": {
                              "description": "Specifies which symbol will be used on replacement",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "."
                            },
                            "expression": {
                              "description": "Search pattern",
                              "type": [
                                "number",
                                "string"
                              ]
                            },
                            "replace_group": {
                              "description": "Specifies group number in expression which will be used for replacement for request or response body. If 0 - replacing full match string",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^[0-9]*$"
                            },
                            "replace_all": {
                              "description": "Replace all occurences or first. By default only first occurence replacing",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "exclusion": {
                              "description": "Define exlcusion from masking in all object with this type, default false",
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "object"
                          ]
                        }
                      },
                      "http2": {
                        "description": "Define http2 specific parameters",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "body_preread_size": {
                            "description": "Sets the size of the buffer per each request in which the request body may be saved before it is started to be processed. By default - 64k",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "chunk_size": {
                            "description": "Sets the maximum size of chunks into which the response body is sliced. A too low value results in higher overhead. A too high value impairs prioritization due to HOL blocking. By default - 8k",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                          },
                          "max_concurrent_pushes": {
                            "description": "Limits the maximum number of concurrent push requests in a connection. By default - 10",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+)$"
                          },
                          "max_concurrent_streams": {
                            "description": "Sets the maximum number of concurrent HTTP/2 streams in a connection. By default - 128",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+)$"
                          },
                          "push_preload": {
                            "description": "Enables automatic conversion of preload links specified in the “Link” response header fields into push requests. By default - off",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "on",
                              "off"
                            ]
                          },
                          "pushes": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "push_parent": {
                                "description": "Cancels the effect of the push directives inherited from the previous configuration level. By default off",
                                "type": "string",
                                "enum": [
                                  "on",
                                  "off"
                                ]
                              },
                              "push_list": {
                                "description": "List of Pre-emptively sends (pushes) a request to the specified uri along with the response to the original request. Only relative URIs with absolute path will be processed",
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            }
                          }
                        }
                      },
                      "log_type": {
                        "description": "Specifies logging mode for sowa-nginx. Default mode - file.",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "kafka": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "group": {
                                  "description": "Specifies which group of logs will use current settings.",
                                  "type": "array",
                                  "items": {
                                    "type": [
                                      "number",
                                      "string"
                                    ],
                                    "enum": [
                                      "system",
                                      "error",
                                      "access"
                                    ]
                                  }
                                },
                                "id": {
                                  "description": "Specifies client.id.",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "broker": {
                                  "description": "Initial list of brokers as a host:port separated by comma.",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "topic": {
                                  "description": "Specifies topic name.",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^\\S*$"
                                },
                                "protocol": {
                                  "description": "Specifies connection protocol. Plaintext by default.",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "enum": [
                                    "plaintext",
                                    "ssl"
                                  ]
                                },
                                "certificate": {
                                  "description": "Specifies ssl.certificate.location",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "ca": {
                                  "description": "Specifies ssl.ca.location.",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "key": {
                                  "description": "Specifies ssl.key.location.",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "ciphers": {
                                  "description": "Specifies ssl.cipher.suites. Same as default ssl ciphers.",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "compression_codec": {
                                  "description": "Compression codec to use for compressing message sets.",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "enum": [
                                    "none",
                                    "gzip",
                                    "snappy",
                                    "lz4",
                                    "zstd"
                                  ]
                                },
                                "compression_level": {
                                  "description": "Compression level parameter for algorithm selected by configuration property compression.codec. Higher values will result in better compression at the cost of more CPU usage.",
                                  "type": "integer",
                                  "minimum": -1,
                                  "maximum": 12
                                },
                                "log_level": {
                                  "description": "Logging level (syslog(3) levels).",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "debug": {
                                  "description": "A comma-separated list of debug contexts to enable.",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "max_messages": {
                                  "description": "Maximum number of messages batched in one MessageSet.",
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 1000000
                                },
                                "pattern_file": {
                                  "description": "Template file with custom log structure.",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "escape": {
                                  "description": "Defines if you need to escape variables used in pattern file.",
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "broker",
                                "topic"
                              ],
                              "allOf": [
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "protocol"
                                    ],
                                    "properties": {
                                      "protocol": {
                                        "const": "ssl"
                                      }
                                    }
                                  },
                                  "then": {
                                    "required": [
                                      "certificate"
                                    ]
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "protocol"
                                    ],
                                    "properties": {
                                      "protocol": {
                                        "const": "ssl"
                                      }
                                    }
                                  },
                                  "then": {
                                    "required": [
                                      "ca"
                                    ]
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "protocol"
                                    ],
                                    "properties": {
                                      "protocol": {
                                        "const": "ssl"
                                      }
                                    }
                                  },
                                  "then": {
                                    "required": [
                                      "key"
                                    ]
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "protocol"
                                    ],
                                    "properties": {
                                      "protocol": {
                                        "const": "ssl"
                                      }
                                    }
                                  },
                                  "else": {
                                    "not": {
                                      "required": [
                                        "ciphers"
                                      ]
                                    }
                                  }
                                }
                              ]
                            }
                          },
                          "syslog": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "group": {
                                  "description": "Specifies which group of logs will use current settings.",
                                  "type": "array",
                                  "items": {
                                    "type": [
                                      "number",
                                      "string"
                                    ],
                                    "enum": [
                                      "system",
                                      "error",
                                      "access"
                                    ]
                                  }
                                },
                                "log_host": {
                                  "description": "Specifies host for remote logging to syslog.",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "log_port": {
                                  "description": "Specifies port for remote logging to syslog. Default port - 514.",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                }
                              }
                            }
                          },
                          "file": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "group": {
                                  "description": "Specifies which group of logs will use current settings.",
                                  "type": "array",
                                  "items": {
                                    "type": [
                                      "number",
                                      "string"
                                    ],
                                    "enum": [
                                      "system",
                                      "error",
                                      "access"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "security": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "enabled": {
                                "description": "Enables logging security security events (XSD, JSON, WSDL and other validators). False by default.",
                                "type": "boolean"
                              },
                              "threads_count": {
                                "description": "Specifies count of threads for thread pool, used for sending security events to syslog. Default is 16",
                                "type": "integer"
                              },
                              "hostname": {
                                "description": "Specifies hostname to dispaly in syslog event. Default is current hostname.",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "appname": {
                                "description": "Specifies application name to dispaly in syslog event. Default is \"sowa-security\".",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "facility": {
                                "description": "Specifies facility for syslog event. Default is USER.",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "KERN",
                                  "USER",
                                  "MAIL",
                                  "DAEMON",
                                  "AUTH",
                                  "SYSLOG",
                                  "LPR",
                                  "NEWS",
                                  "UUCP",
                                  "CRON",
                                  "AUTHPRIV",
                                  "FTP",
                                  "NTP",
                                  "AUDIT",
                                  "ALERT",
                                  "CLOCK",
                                  "LOCAL0",
                                  "LOCAL1",
                                  "LOCAL2",
                                  "LOCAL3",
                                  "LOCAL4",
                                  "LOCAL5",
                                  "LOCAL6",
                                  "LOCAL7"
                                ]
                              },
                              "severity": {
                                "description": "Specifies severity for syslog event. Default is INFORMATIONAL.",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "EMERGENCY",
                                  "ALERT",
                                  "CRITICAL",
                                  "ERROR",
                                  "WARNING",
                                  "NOTICE",
                                  "INFORMATIONAL",
                                  "DEBUG"
                                ]
                              },
                              "target_host": {
                                "description": "Specifies host to send syslog event. Default is \"127.0.0.1\"",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "target_port": {
                                "description": "Specifies port to send syslog event. Default is 514.",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 65535
                              },
                              "protocol": {
                                "description": "Specifies used protocol to send syslog event. Default is UDP.",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "UDP",
                                  "TCP"
                                ]
                              },
                              "msg_format": {
                                "description": "Specifies message format to send syslog event. Default is RFC_3164",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "RFC_3164",
                                  "RFC_5424",
                                  "RFC_5425"
                                ]
                              }
                            }
                          }
                        }
                      },
                      "cache": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "zone": {
                            "description": "Задаёт зону разделяемой памяти, используемой для кэширования. Одна и та же зона может использоваться в нескольких местах. В значении параметра можно использовать переменные (1.7.9). Параметр off запрещает кэширование, унаследованное с предыдущего уровня конфигурации.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "background_update": {
                            "description": "Позволяет запустить фоновый подзапрос для обновления просроченного элемента кэша, в то время как клиенту возвращается устаревший закэшированный ответ. Использование устаревшего закэшированного ответа в момент его обновления должно быть разрешено.",
                            "type": "boolean"
                          },
                          "bypass": {
                            "description": "Задаёт условия, при которых ответ не будет браться из кэша. Если значение хотя бы одного из строковых параметров непустое и не равно “0”, то ответ не берётся из кэша: $cookie_nocache $arg_nocache$arg_comment; $http_pragma    $http_authorization;\n",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "convert_head": {
                            "description": "Разрешает или запрещает преобразование метода “HEAD” в “GET” для кэширования. Если преобразование выключено, то необходимо, чтобы ключ кэширования включал в себя $request_method. Включено по умолчанию.",
                            "type": "boolean"
                          },
                          "key": {
                            "description": "Задаёт ключ для кэширования, например, \"$host$request_uri $cookie_user\". \"$scheme$proxy_host$request_uri\" по умолчанию.",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "lock": {
                            "description": "Если включено, одновременно только одному запросу будет позволено заполнить новый элемент кэша, идентифицируемый согласно директиве key, передав запрос на проксируемый сервер. Остальные запросы этого же элемента будут либо ожидать появления ответа в кэше, либо освобождения блокировки этого элемента, в течение времени, заданного директивой lock_timeout. Выключено по умолчанию.",
                            "type": "boolean"
                          },
                          "lock_age": {
                            "description": "Задаёт таймаут для cache_lock. По истечении указанного времени запрос будет передан на проксируемый сервер, однако ответ не будет закэширован. По умолчанию 5 секунд.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^([0-9]+[mMsS]{1})$"
                          },
                          "max_range_offset": {
                            "description": "Задаёт смещение в байтах для запросов с указанием диапазона запрашиваемых байт (byte-range requests). Если диапазон находится за указанным смещением, range-запрос будет передан на проксируемый сервер и ответ не будет закэширован. По умолчанию не используется.",
                            "type": "integer"
                          },
                          "methods": {
                            "description": "Если метод запроса клиента указан в этой директиве, то ответ будет закэширован. Методы “GET” и “HEAD” всегда добавляются в список, но тем не менее рекомендуется перечислять их явно.",
                            "type": "array",
                            "items": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "get",
                                "head",
                                "post"
                              ]
                            }
                          },
                          "min_uses": {
                            "description": "Задаёт число запросов, после которого ответ будет закэширован. По умолчанию - 1.",
                            "type": "integer"
                          },
                          "purge": {
                            "description": "Задаёт условия, при которых запрос будет считаться запросом на очистку кэша. Если значение хотя бы одного из строковых параметров непустое и не равно “0”, то запись в кэше с соответствующим ключом кэширования удаляется. В результате успешной операции возвращается ответ с кодом 204 (No Content). Если ключ кэширования запроса на очистку заканчивается звёздочкой (“*”), то все записи в кэше, соответствующие этой маске, будут удалены из кэша. Тем не менее, эти записи будут оставаться на диске или до момента удаления из-за отсутствия обращения к данным или до попытки клиента получить к ним доступ. \n",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "revalidate": {
                            "description": "Разрешает ревалидацию просроченных элементов кэша при помощи условных запросов с полями заголовка “If-Modified-Since” и “If-None-Match”. По умолчанию выключено",
                            "type": "boolean"
                          },
                          "use_stale": {
                            "description": "Определяет, в каких случаях можно использовать устаревший закэшированный ответ. Параметры директивы совпадают с параметрами директивы next_upstream.",
                            "type": "array",
                            "items": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "error",
                                "timeout",
                                "invalid_header",
                                "updating",
                                "http_500",
                                "http_502",
                                "http_503",
                                "http_504",
                                "http_403",
                                "http_404",
                                "http_429"
                              ]
                            }
                          },
                          "valid": {
                            "type": "array",
                            "items": {
                              "description": "Задаёт время кэширования для разных кодов ответа. Например, \"200 302 10m\";",
                              "type": [
                                "number",
                                "string"
                              ]
                            }
                          }
                        },
                        "required": [
                          "zone"
                        ]
                      },
                      "healthcheck_dynamic": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "initial_state_param_file": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                          },
                          "manual_state_var_refresh_interval": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                          },
                          "endpoints": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "url": {
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "response": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "code": {
                                      "description": "Specifies an array of error codes by which templates will be generated.",
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      }
                                    },
                                    "pattern_file": {
                                      "description": "Specifies pattern file which will be used as response body.",
                                      "type": "string",
                                      "enum": [
                                        "hc_pattern_default.json",
                                        "hc_pattern_profile_default.json",
                                        "hc_pattern_service_default.json"
                                      ]
                                    },
                                    "custom_pattern_file": {
                                      "description": "Specifies rule file which describes how to fill pattern file.",
                                      "type": "string",
                                      "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                    },
                                    "rules_file": {
                                      "description": "Specifies rule file which describes how to fill pattern file. Default - rules file from system resources.",
                                      "type": "string",
                                      "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                    },
                                    "content_type": {
                                      "description": "Specifies content type for response header. Default - none.",
                                      "type": "string"
                                    }
                                  }
                                },
                                "upstream_check_type": {
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "enum": [
                                    "ANY_UPSTREAM_UP",
                                    "ALL_UPSTREAM_UP",
                                    "ANY_UPSTREAM_UP_OR_DRAIN",
                                    "ALL_UPSTREAM_UP_OR_DRAIN"
                                  ]
                                },
                                "service_id": {
                                  "description": "Binded service id",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "upstream_filter": {
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "disable_access_log": {
                                  "description": "Disable writing access log, by default -false",
                                  "type": "boolean"
                                },
                                "disable_error_log": {
                                  "description": "Disable writing error log, default false",
                                  "type": "boolean"
                                },
                                "disable_gathering_stats": {
                                  "description": "Disable gathering stat, default false",
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "url",
                                "response"
                              ]
                            }
                          }
                        }
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "limit_requests"
                          ],
                          "properties": {
                            "limit_requests": {}
                          }
                        },
                        "then": {
                          "not": {
                            "required": [
                              "limit_req"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "limit_req"
                          ],
                          "properties": {
                            "limit_req": {}
                          }
                        },
                        "then": {
                          "not": {
                            "required": [
                              "limit_requests"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            ".."
                          ],
                          "properties": {
                            "..": {
                              "type": "object",
                              "required": [
                                "listen"
                              ],
                              "properties": {
                                "listen": {
                                  "pattern": ".+"
                                }
                              }
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "healthcheck_dynamic"
                            ]
                          }
                        }
                      }
                    ]
                  },
                  "filters": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "filter_mds": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "enabled": {
                            "description": "Specifies to enable or disable MDS. Default is \"True\".",
                            "type": "boolean"
                          },
                          "aio": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "enabled": {
                                "description": "When specified true, dedicated thread will be used for request/response processing when its possible, value inherited from parent and may be overrite in child",
                                "type": "boolean"
                              },
                              "thread_pool_id": {
                                "description": "name of thread pool from section system/optional/thread_pools, value inherite from parent and may by override in child. Must be specified when aio is true",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            }
                          },
                          "ignore_parent": {
                            "description": "Specifies ignore parent rules and settings or not",
                            "type": "boolean"
                          },
                          "debug": {
                            "type": "boolean"
                          },
                          "config": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "SecRuleEngine": {
                                "enum": [
                                  true,
                                  false,
                                  "DetectionOnly"
                                ]
                              },
                              "SecRequestBodyAccess": {
                                "type": "boolean"
                              },
                              "SecRequestBodyLimit": {
                                "type": "integer"
                              },
                              "SecRequestBodyLimitAction": {
                                "type": "string"
                              },
                              "SecPcreMatchLimit": {
                                "type": "integer"
                              },
                              "SecPcreMatchLimitRecursion": {
                                "type": "integer"
                              },
                              "SecResponseBodyAccess": {
                                "type": "boolean"
                              },
                              "SecResponseBodyMimeType": {
                                "type": "string"
                              },
                              "SecResponseBodyLimit": {
                                "type": "integer"
                              },
                              "SecResponseBodyLimitAction": {
                                "type": "string"
                              },
                              "SecStreamOutBodyInspection": {
                                "type": "boolean"
                              },
                              "SecUploadKeepFiles": {
                                "type": "boolean"
                              },
                              "SecAuditEngine": {
                                "type": "string"
                              },
                              "SecAuditLogRelevantStatus": {
                                "type": "string"
                              },
                              "SecAuditLogParts": {
                                "type": "string"
                              },
                              "SecAuditLogType": {
                                "type": "string",
                                "enum": [
                                  "Syslog",
                                  "Serial",
                                  "Concurrent",
                                  "Kafka"
                                ]
                              },
                              "SecAuditSyslogHost": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "SecAuditSyslogPort": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "SecAuditSyslogProtocol": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "tcp",
                                  "udp"
                                ]
                              },
                              "SecAuditSyslogConnectTimeout": {
                                "type": "integer"
                              },
                              "SecArgumentSeparator": {
                                "type": "string"
                              },
                              "SecCookieFormat": {
                                "type": "integer"
                              },
                              "SecUnicodeMapFile": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "file": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  },
                                  "code": {
                                    "type": [
                                      "number",
                                      "string"
                                    ]
                                  }
                                },
                                "required": [
                                  "file",
                                  "code"
                                ]
                              },
                              "SecUseTransformCache": {
                                "type": "boolean"
                              },
                              "SecRequestTimeout": {
                                "type": "integer"
                              },
                              "SecPassSlowRequest": {
                                "type": "boolean"
                              },
                              "SecResponseTimeout": {
                                "type": "integer"
                              },
                              "SecPassSlowResponse": {
                                "type": "boolean"
                              },
                              "SecLogFullBodyOnTimeout": {
                                "type": "boolean"
                              },
                              "SecAuditKafkaBrokers": {
                                "description": "CSV list of brokers",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "SecAuditKafkaTopic": {
                                "description": "topic to connect to",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "SecAuditKafkaProtocol": {
                                "description": "connection protocol",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "plaintext",
                                  "ssl"
                                ]
                              },
                              "SecAuditKafkaCertificate": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "SecAuditKafkaKey": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "SecAuditKafkaCa": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            },
                            "allOf": [
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecRequestBodyLimitAction"
                                  ],
                                  "properties": {
                                    "SecRequestBodyLimitAction": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "SecRequestBodyLimit"
                                  ]
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecRequestBodyLimit"
                                  ],
                                  "properties": {
                                    "SecRequestBodyLimit": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "SecRequestBodyLimitAction"
                                  ]
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecResponseBodyLimitAction"
                                  ],
                                  "properties": {
                                    "SecResponseBodyLimitAction": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "SecResponseBodyLimit"
                                  ]
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecResponseBodyLimit"
                                  ],
                                  "properties": {
                                    "SecResponseBodyLimit": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "SecResponseBodyLimitAction"
                                  ]
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecAuditLogType"
                                  ],
                                  "properties": {
                                    "SecAuditLogType": {
                                      "const": "Kafka"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "SecAuditKafkaBrokers"
                                  ]
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecAuditLogType"
                                  ],
                                  "properties": {
                                    "SecAuditLogType": {
                                      "const": "Kafka"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "SecAuditKafkaTopic"
                                  ]
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecAuditKafkaProtocol"
                                  ],
                                  "properties": {
                                    "SecAuditKafkaProtocol": {
                                      "const": "ssl"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "SecAuditKafkaCertificate"
                                  ]
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecAuditKafkaProtocol"
                                  ],
                                  "properties": {
                                    "SecAuditKafkaProtocol": {
                                      "const": "ssl"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "SecAuditKafkaKey"
                                  ]
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecRequestBodyLimitAction"
                                  ],
                                  "properties": {
                                    "SecRequestBodyLimitAction": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "else": {
                                  "not": {
                                    "required": [
                                      "SecRequestBodyLimit"
                                    ]
                                  }
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecRequestBodyLimit"
                                  ],
                                  "properties": {
                                    "SecRequestBodyLimit": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "else": {
                                  "not": {
                                    "required": [
                                      "SecRequestBodyLimitAction"
                                    ]
                                  }
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecResponseBodyLimitAction"
                                  ],
                                  "properties": {
                                    "SecResponseBodyLimitAction": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "else": {
                                  "not": {
                                    "required": [
                                      "SecResponseBodyLimit"
                                    ]
                                  }
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecResponseBodyLimit"
                                  ],
                                  "properties": {
                                    "SecResponseBodyLimit": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "else": {
                                  "not": {
                                    "required": [
                                      "SecResponseBodyLimitAction"
                                    ]
                                  }
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecRequestTimeout"
                                  ],
                                  "properties": {
                                    "SecRequestTimeout": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "else": {
                                  "not": {
                                    "required": [
                                      "SecPassSlowRequest"
                                    ]
                                  }
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecResponseTimeout"
                                  ],
                                  "properties": {
                                    "SecResponseTimeout": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "else": {
                                  "not": {
                                    "required": [
                                      "SecPassSlowResponse"
                                    ]
                                  }
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecResponseTimeout"
                                  ],
                                  "properties": {
                                    "SecResponseTimeout": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "else": {
                                  "not": {
                                    "required": [
                                      "SecLogFullBodyOnTimeout"
                                    ]
                                  }
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecRequestTimeout"
                                  ],
                                  "properties": {
                                    "SecRequestTimeout": {
                                      "pattern": ".+"
                                    }
                                  }
                                },
                                "else": {
                                  "not": {
                                    "required": [
                                      "SecLogFullBodyOnTimeout"
                                    ]
                                  }
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "SecAuditKafkaProtocol"
                                  ],
                                  "properties": {
                                    "SecAuditKafkaProtocol": {
                                      "const": "ssl"
                                    }
                                  }
                                },
                                "else": {
                                  "not": {
                                    "required": [
                                      "SecAuditKafkaCa"
                                    ]
                                  }
                                }
                              }
                            ]
                          },
                          "rules": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "base",
                                "owasp-crs",
                                "comodo",
                                "sowa-mq",
                                "sowa-http",
                                "sowa-ws",
                                "sowa-ufs",
                                "sowa-kafka",
                                "sowa-http-reversed"
                              ]
                            }
                          },
                          "custom_rules": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    }
                  },
                  "modifiers": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "set_header": {
                        "description": "Allows to redefine or replace header in client request.",
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "proxy_host_resolved": {
                        "description": "Determines whether the original peer name or its resolved IP representation will be pass to the upstream in header \"Host\". Default is false.",
                        "type": "boolean"
                      },
                      "pass_header": {
                        "description": "Allows passing forbidden headers from the upstream to the client.",
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "proxy_redirect": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "sub_filter": {
                        "description": "Allows to make replace from one string to another in the upstream response.",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "once": {
                            "type": "string",
                            "enum": [
                              "on",
                              "off"
                            ]
                          },
                          "last_modified": {
                            "type": "string",
                            "enum": [
                              "on",
                              "off"
                            ]
                          },
                          "replace": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "from": {
                                  "type": "string"
                                },
                                "to": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "from",
                                "to"
                              ]
                            }
                          }
                        },
                        "required": [
                          "replace"
                        ]
                      },
                      "subs_filter": {
                        "description": "Allows to make replace from one string to another in the upstream response using regular expressions.",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "mime_types": {
                            "description": "Default \"*\"",
                            "type": "string"
                          },
                          "replace": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "from": {
                                  "type": "string"
                                },
                                "to": {
                                  "type": "string"
                                },
                                "flags": {
                                  "description": "Default \"r\"",
                                  "type": "array",
                                  "uniqueItems": true,
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "i",
                                      "g",
                                      "o",
                                      "r"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "from",
                                "to"
                              ]
                            }
                          }
                        },
                        "required": [
                          "replace"
                        ]
                      },
                      "cors": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "origin_wl": {
                            "description": "Specifies whitelist for the Origin header.",
                            "type": "string",
                            "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                          },
                          "origin_wl_type": {
                            "description": "Specifies type for the 'origin_wl' directive. 're' - whitelist with regex values, 'recl' - whitelist with caseless regex values. If not specified, then full match used.",
                            "type": "string",
                            "enum": [
                              "re",
                              "recl"
                            ]
                          },
                          "origin_allow_null_wl": {
                            "description": "Specifies whitelist of hosts whom allowed 'Origin null'.",
                            "type": "string",
                            "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                          },
                          "origin_allow_null_wl_type": {
                            "description": "Specifies type for the 'origin_allow_null_wl' directive. 're' - whitelist with regex values, 'recl' - whitelist with caseless regex values. If not specified, then full match used.",
                            "type": "string",
                            "enum": [
                              "re",
                              "recl"
                            ]
                          },
                          "method_wl": {
                            "description": "Specifies whitelist for the request method. Used in prefligth request.",
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "get",
                                "head",
                                "post",
                                "put",
                                "connect",
                                "options",
                                "trace",
                                "patch",
                                "delete"
                              ]
                            }
                          },
                          "deny_status": {
                            "description": "Specifies the deny status when CORS checks is failed. By default is 403.",
                            "type": [
                              "number",
                              "string"
                            ],
                            "pattern": "^(4|5)[0-9]{2}$"
                          }
                        },
                        "required": [
                          "origin_wl",
                          "method_wl"
                        ]
                      },
                      "set_output_headers": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "headers": {
                              "description": "Specifies header line. For example 'X-MyHeader foo'.",
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "status_codes": {
                              "description": "Specifies status code criteria.",
                              "type": "array",
                              "items": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "pattern": "^[1-5][0-9]{2}$"
                              }
                            },
                            "content_types": {
                              "description": "Specifies content type criteria in response headers. For example 'text/html'.",
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "conditions": {
                              "description": "Specifies the conditions file for the headers.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "conditions_reverse": {
                              "type": "boolean"
                            },
                            "set_var": {
                              "description": "Setting variable for use in this headers. For example '$orig_xff $http_x_forwarded_for'.",
                              "type": "string"
                            },
                            "value_regex": {
                              "description": "Updates an existing header if it's current value matches the specified regular expression. Example '~*session=.*'",
                              "type": [
                                "number",
                                "string"
                              ]
                            }
                          },
                          "required": [
                            "headers"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "conditions"
                                ],
                                "properties": {
                                  "conditions": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "conditions_reverse"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      },
                      "set_input_headers": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "headers": {
                              "description": "Specifies header line. For example 'X-MyHeader foo'.",
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "content_types": {
                              "description": "Specifies content type criteria in request headers. For example 'text/html'.",
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "conditions": {
                              "description": "Specifies the conditions file for the headers.",
                              "type": "string",
                              "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                            },
                            "conditions_reverse": {
                              "type": "boolean"
                            },
                            "set_var": {
                              "description": "Setting variable for use in this headers. For example '$orig_xff $http_x_forwarded_for'.",
                              "type": "string"
                            }
                          },
                          "required": [
                            "headers"
                          ],
                          "allOf": [
                            {
                              "if": {
                                "type": "object",
                                "required": [
                                  "conditions"
                                ],
                                "properties": {
                                  "conditions": {
                                    "pattern": ".+"
                                  }
                                }
                              },
                              "else": {
                                "not": {
                                  "required": [
                                    "conditions_reverse"
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            ".."
                          ],
                          "properties": {
                            "..": {
                              "properties": {
                                "optional": {
                                  "type": "object",
                                  "required": [
                                    "http_version"
                                  ],
                                  "properties": {
                                    "http_version": {}
                                  }
                                }
                              }
                            }
                          }
                        },
                        "then": {
                          "not": {
                            "required": [
                              "proxy_redirect"
                            ]
                          }
                        }
                      }
                    ]
                  },
                  "validators": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "validator_json": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "request": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "default": {
                                  "description": "Specify the default rule",
                                  "type": "boolean"
                                },
                                "url": {
                                  "type": "string"
                                },
                                "method": {
                                  "type": "string",
                                  "enum": [
                                    "post",
                                    "put",
                                    "delete",
                                    "patch"
                                  ]
                                },
                                "params": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "name": {
                                        "type": [
                                          "number",
                                          "string"
                                        ]
                                      },
                                      "operator": {
                                        "type": "string",
                                        "enum": [
                                          "=",
                                          "!=",
                                          "~",
                                          "~*",
                                          "!~",
                                          "!~*"
                                        ]
                                      },
                                      "pattern": {
                                        "type": [
                                          "number",
                                          "string"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "name",
                                      "operator",
                                      "pattern"
                                    ]
                                  }
                                },
                                "allow_empty_body": {
                                  "description": "Specifies allow empty bodies or not.",
                                  "type": "boolean"
                                },
                                "allow_primitives_in_root": {
                                  "description": "Specifies allow primitives(integer/string/boolean/null) in root of json or allowed only JSONObject/JSONArray in root. Default - false",
                                  "type": "boolean"
                                },
                                "transforms": {
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "PostFormDataToFlateJson"
                                    ]
                                  }
                                },
                                "schema": {
                                  "type": "string",
                                  "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                }
                              },
                              "required": [
                                "schema"
                              ],
                              "allOf": [
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "url"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "method"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "params"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "allow_empty_body"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "allow_primitives_in_root"
                                      ]
                                    }
                                  }
                                }
                              ]
                            }
                          },
                          "response": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "default": {
                                  "description": "Specify the default rule",
                                  "type": "boolean"
                                },
                                "url": {
                                  "type": "string"
                                },
                                "method": {
                                  "type": "string",
                                  "enum": [
                                    "get",
                                    "post",
                                    "put",
                                    "delete",
                                    "patch"
                                  ]
                                },
                                "params": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "name": {
                                        "type": [
                                          "number",
                                          "string"
                                        ]
                                      },
                                      "operator": {
                                        "type": "string",
                                        "enum": [
                                          "=",
                                          "!=",
                                          "~",
                                          "~*",
                                          "!~",
                                          "!~*"
                                        ]
                                      },
                                      "pattern": {
                                        "type": [
                                          "number",
                                          "string"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "name",
                                      "operator",
                                      "pattern"
                                    ]
                                  }
                                },
                                "allow_empty_body": {
                                  "description": "Specifies allow empty bodies or not.",
                                  "type": "boolean"
                                },
                                "allow_primitives_in_root": {
                                  "description": "Specifies allow primitives(integer/string/boolean/null) in root of json or allowed only JSONObject/JSONArray in root. Default - false",
                                  "type": "boolean"
                                },
                                "transforms": {
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "PostFormDataToFlateJson"
                                    ]
                                  }
                                },
                                "schema": {
                                  "type": "string",
                                  "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                },
                                "response_code": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "operator": {
                                      "type": "string",
                                      "enum": [
                                        "=",
                                        "!=",
                                        "~",
                                        "~*",
                                        "!~",
                                        "!~*"
                                      ]
                                    },
                                    "pattern": {
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "operator",
                                    "pattern"
                                  ]
                                }
                              },
                              "required": [
                                "schema"
                              ],
                              "allOf": [
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "url"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "method"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "params"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "allow_empty_body"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "allow_primitives_in_root"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "response_code"
                                      ]
                                    }
                                  }
                                }
                              ]
                            }
                          },
                          "response_proc_options": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "max_inmemory_size": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                              },
                              "response_generation_type": {
                                "description": "Defines how validator generate error response, when internal - using direct generation in java call, when external - native redirect to error page, by default internal",
                                "type": "string",
                                "enum": [
                                  "internal",
                                  "external"
                                ]
                              }
                            }
                          },
                          "request_error_code": {
                            "type": "integer"
                          },
                          "request_error_message": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "response_error_code": {
                            "type": "integer"
                          },
                          "response_error_message": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "trailing_garbage_policy": {
                            "type": "string",
                            "enum": [
                              "WEAK",
                              "STANDARD",
                              "STRONG"
                            ]
                          },
                          "action_when_no_rule": {
                            "description": "Defines behavior in case when request or response don't have apropriate rule to validate, if DENY - message blocked, if IGNORE - message processing continue By default - deny",
                            "type": "string",
                            "enum": [
                              "ignore",
                              "deny"
                            ]
                          },
                          "action": {
                            "description": "Defines behavior in case when request or response validation is failed, ignore - only log error, but request or response not blocked, deny - request/response blocked, by default - deny",
                            "type": "string",
                            "enum": [
                              "ignore",
                              "deny"
                            ]
                          }
                        },
                        "allOf": [
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "response"
                              ],
                              "properties": {
                                "response": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "response_proc_options"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "request"
                              ],
                              "properties": {
                                "request": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "request_error_code"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "request"
                              ],
                              "properties": {
                                "request": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "request_error_message"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "response"
                              ],
                              "properties": {
                                "response": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "response_error_code"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "response"
                              ],
                              "properties": {
                                "response": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "response_error_message"
                                ]
                              }
                            }
                          }
                        ]
                      },
                      "validator_xsd": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "request": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "default": {
                                  "description": "Specify the default rule",
                                  "type": "boolean"
                                },
                                "url": {
                                  "type": "string"
                                },
                                "method": {
                                  "type": "string",
                                  "enum": [
                                    "post",
                                    "put",
                                    "delete",
                                    "patch"
                                  ]
                                },
                                "params": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "name": {
                                        "type": [
                                          "number",
                                          "string"
                                        ]
                                      },
                                      "operator": {
                                        "type": "string",
                                        "enum": [
                                          "=",
                                          "!=",
                                          "~",
                                          "~*",
                                          "!~",
                                          "!~*"
                                        ]
                                      },
                                      "pattern": {
                                        "type": [
                                          "number",
                                          "string"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "name",
                                      "operator",
                                      "pattern"
                                    ]
                                  }
                                },
                                "transforms": {
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "Base64Decode",
                                      "ASN1ContentExtractor"
                                    ]
                                  }
                                },
                                "schema": {
                                  "type": "string",
                                  "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                },
                                "wsdl": {
                                  "type": "boolean"
                                },
                                "default_wsdl_style": {
                                  "type": "string",
                                  "enum": [
                                    "document",
                                    "rpc"
                                  ]
                                }
                              },
                              "required": [
                                "schema"
                              ],
                              "allOf": [
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "url"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "method"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "params"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "wsdl"
                                    ],
                                    "properties": {
                                      "wsdl": {
                                        "const": false
                                      }
                                    }
                                  }
                                }
                              ]
                            }
                          },
                          "request_limits": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "entityExpansionLimit": {
                                "description": "Limit the number of entity expansions. Default - 64000",
                                "type": "integer"
                              },
                              "elementAttributeLimit": {
                                "description": "Limit the number of attributes an element can have. Default - 10000",
                                "type": "integer"
                              },
                              "maxOccurLimit": {
                                "description": "Limit the number of content model nodes that may be created when building a grammar for a W3C XML Schema that contains maxOccurs attributes with values other than \"unbounded\". Default - 5000",
                                "type": "integer"
                              },
                              "totalEntitySizeLimit": {
                                "description": "Limit the total size of all entities that include general and parameter entities. The size is calculated as an aggregation of all entities. Default - 50000000",
                                "type": "integer"
                              },
                              "maxGeneralEntitySizeLimit": {
                                "description": "Limit the maximum size of any general entities. Default - 0",
                                "type": "integer"
                              },
                              "maxParameterEntitySizeLimit": {
                                "description": "Limit the maximum size of any parameter entities, including the result of nesting multiple parameter entities. Default - 1000000",
                                "type": "integer"
                              },
                              "entityReplacementLimit": {
                                "description": "Limit the total number of nodes in all entity references. Default - 3000000",
                                "type": "integer"
                              },
                              "maxElementDepth": {
                                "description": "Limit the maximum element depth. Default - 0",
                                "type": "integer"
                              },
                              "maxXMLNameLimit": {
                                "description": "Limit the maximum size of XML names, including element name, attribute name and namespace prefix and URI. Default - 1000",
                                "type": "integer"
                              }
                            }
                          },
                          "response": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "default": {
                                  "description": "Specify the default rule",
                                  "type": "boolean"
                                },
                                "url": {
                                  "type": "string"
                                },
                                "method": {
                                  "type": "string",
                                  "enum": [
                                    "get",
                                    "post",
                                    "put",
                                    "delete",
                                    "patch"
                                  ]
                                },
                                "params": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "name": {
                                        "type": [
                                          "number",
                                          "string"
                                        ]
                                      },
                                      "operator": {
                                        "type": "string",
                                        "enum": [
                                          "=",
                                          "!=",
                                          "~",
                                          "~*",
                                          "!~",
                                          "!~*"
                                        ]
                                      },
                                      "pattern": {
                                        "type": [
                                          "number",
                                          "string"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "name",
                                      "operator",
                                      "pattern"
                                    ]
                                  }
                                },
                                "transforms": {
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "Base64Decode",
                                      "ASN1ContentExtractor"
                                    ]
                                  }
                                },
                                "schema": {
                                  "type": "string",
                                  "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                                },
                                "wsdl": {
                                  "type": "boolean"
                                },
                                "default_wsdl_style": {
                                  "type": "string",
                                  "enum": [
                                    "document",
                                    "rpc"
                                  ]
                                },
                                "response_code": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "operator": {
                                      "type": "string",
                                      "enum": [
                                        "=",
                                        "!=",
                                        "~",
                                        "~*",
                                        "!~",
                                        "!~*"
                                      ]
                                    },
                                    "pattern": {
                                      "type": [
                                        "number",
                                        "string"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "operator",
                                    "pattern"
                                  ]
                                }
                              },
                              "required": [
                                "schema"
                              ],
                              "allOf": [
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "url"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "method"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "params"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "wsdl"
                                    ],
                                    "properties": {
                                      "wsdl": {
                                        "const": false
                                      }
                                    }
                                  }
                                },
                                {
                                  "if": {
                                    "type": "object",
                                    "required": [
                                      "default"
                                    ],
                                    "properties": {
                                      "default": {}
                                    }
                                  },
                                  "then": {
                                    "not": {
                                      "required": [
                                        "response_code"
                                      ]
                                    }
                                  }
                                }
                              ]
                            }
                          },
                          "response_limits": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "entityExpansionLimit": {
                                "description": "Limit the number of entity expansions. Default - 64000",
                                "type": "integer"
                              },
                              "elementAttributeLimit": {
                                "description": "Limit the number of attributes an element can have. Default - 10000",
                                "type": "integer"
                              },
                              "maxOccurLimit": {
                                "description": "Limit the number of content model nodes that may be created when building a grammar for a W3C XML Schema that contains maxOccurs attributes with values other than \"unbounded\". Default - 5000",
                                "type": "integer"
                              },
                              "totalEntitySizeLimit": {
                                "description": "Limit the total size of all entities that include general and parameter entities. The size is calculated as an aggregation of all entities. Default - 50000000",
                                "type": "integer"
                              },
                              "maxGeneralEntitySizeLimit": {
                                "description": "Limit the maximum size of any general entities. Default - 0",
                                "type": "integer"
                              },
                              "maxParameterEntitySizeLimit": {
                                "description": "Limit the maximum size of any parameter entities, including the result of nesting multiple parameter entities. Default - 1000000",
                                "type": "integer"
                              },
                              "entityReplacementLimit": {
                                "description": "Limit the total number of nodes in all entity references. Default - 3000000",
                                "type": "integer"
                              },
                              "maxElementDepth": {
                                "description": "Limit the maximum element depth. Default - 0",
                                "type": "integer"
                              },
                              "maxXMLNameLimit": {
                                "description": "Limit the maximum size of XML names, including element name, attribute name and namespace prefix and URI. Default - 1000",
                                "type": "integer"
                              }
                            }
                          },
                          "response_proc_options": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "max_inmemory_size": {
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                              },
                              "response_generation_type": {
                                "description": "Defines how validator generate error response, when internal - using direct generation in java call, when external - native redirect to error page, by default internal",
                                "type": "string",
                                "enum": [
                                  "internal",
                                  "external"
                                ]
                              }
                            }
                          },
                          "request_error_code": {
                            "type": "integer"
                          },
                          "request_error_message": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "response_error_code": {
                            "type": "integer"
                          },
                          "response_error_message": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "action_when_no_rule": {
                            "description": "Defines behavior in case when request or response don't have apropriate rule to validate, if DENY - message blocked, if IGNORE - message processing continue By default - deny",
                            "type": "string",
                            "enum": [
                              "ignore",
                              "deny"
                            ]
                          },
                          "action": {
                            "description": "Defines behavior in case when request or response validation is failed, ignore - only log error, but request or response not blocked, deny - request/response blocked, by default - deny",
                            "type": "string",
                            "enum": [
                              "ignore",
                              "deny"
                            ]
                          }
                        },
                        "allOf": [
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "request"
                              ],
                              "properties": {
                                "request": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "request_limits"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "response"
                              ],
                              "properties": {
                                "response": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "response_limits"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "response"
                              ],
                              "properties": {
                                "response": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "response_proc_options"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "request"
                              ],
                              "properties": {
                                "request": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "request_error_code"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "request"
                              ],
                              "properties": {
                                "request": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "request_error_message"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "response"
                              ],
                              "properties": {
                                "response": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "response_error_code"
                                ]
                              }
                            }
                          },
                          {
                            "if": {
                              "type": "object",
                              "required": [
                                "response"
                              ],
                              "properties": {
                                "response": {
                                  "pattern": ".+"
                                }
                              }
                            },
                            "else": {
                              "not": {
                                "required": [
                                  "response_error_message"
                                ]
                              }
                            }
                          }
                        ]
                      }
                    }
                  },
                  "opentelemetry": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "tracing": {
                        "description": "Defines parameters of Opentelemetry Tracing",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "mode": {
                            "description": "Enable or disable tracing at this level",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "enabled": {
                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "on",
                                  "off",
                                  "var_based"
                                ]
                              },
                              "var": {
                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            },
                            "allOf": [
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "enabled"
                                  ],
                                  "properties": {
                                    "enabled": {
                                      "const": "var_based"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "var"
                                  ]
                                }
                              }
                            ]
                          },
                          "trace_context": {
                            "description": "Specifies how to propagate traceparent/tracestate headers.   Default - ignore",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "extract",
                              "inject",
                              "propagate",
                              "ignore"
                            ]
                          },
                          "span_name": {
                            "description": "Defines the name of span. By default - name of location, can be contain variables",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "span_attr": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "description": "name of attribute",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "value": {
                                  "description": "value of attribute, can contain variables",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            ""
                          ],
                          "properties": {
                            "": {
                              "properties": {
                                "system": {
                                  "type": "object",
                                  "required": [
                                    "system"
                                  ],
                                  "properties": {
                                    "system": {},
                                    "optional": {
                                      "type": "object",
                                      "required": [
                                        "opentelemetry"
                                      ],
                                      "properties": {
                                        "opentelemetry": {
                                          "pattern": ".+"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "tracing"
                            ]
                          }
                        }
                      }
                    ]
                  }
                },
                "required": [
                  "id",
                  "url",
                  "store_name",
                  "configuration_file"
                ],
                "allOf": [
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        "optional"
                      ],
                      "properties": {
                        "optional": {
                          "type": "object",
                          "required": [
                            "event_hook"
                          ],
                          "properties": {
                            "event_hook": {
                              "pattern": ".+"
                            }
                          }
                        }
                      }
                    },
                    "then": {
                      "required": [
                        "name"
                      ]
                    }
                  }
                ]
              }
            }
          },
          "required": [
            "storages"
          ]
        },
        "service_profile_status_prometheus": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "Specifies the unique id for the service.",
                "type": [
                  "number",
                  "string"
                ],
                "pattern": "^[^.\\/\\\\()]+$"
              },
              "name": {
                "description": "Human readable Service identifier printed in log messages",
                "type": [
                  "number",
                  "string"
                ]
              },
              "profile_version": {
                "description": "Specifies profile version of this service",
                "type": [
                  "number",
                  "string"
                ]
              },
              "description": {
                "type": [
                  "number",
                  "string"
                ]
              },
              "listen": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "address": {
                      "description": "specifies ip/hostname on which the socket will listen.",
                      "type": [
                        "number",
                        "string"
                      ]
                    },
                    "port": {
                      "description": "specifies port on which the socket will listen",
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 65535
                    },
                    "allow_http2": {
                      "description": "Allow to accept http2 connection. Default - false",
                      "type": "boolean"
                    },
                    "proxy_protocol": {
                      "description": "Accept proxy protocol. Http requests will not be handler with this flag. Default - false",
                      "type": "boolean"
                    },
                    "http2_only": {
                      "description": "Allow to pass only http2 protocol connection. Default - off",
                      "type": "string",
                      "enum": [
                        "on",
                        "off"
                      ]
                    },
                    "ssl": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "sspi": {
                          "description": "Enables GOST TLS mode. Default id false.",
                          "type": "boolean"
                        },
                        "client_verify_local_crl_only": {
                          "description": "GOST mode. Specifies whether to check the certificate status locally (otherwise check online). Default is \"off\" (online check).",
                          "type": "string",
                          "enum": [
                            "on",
                            "off"
                          ]
                        },
                        "buffer_size": {
                          "description": "GOST mode. Specifies payload length in TLS record (min 1024, max 16384). Default is 16384 bytes.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^([0-9]+[kK]{1})|([0-9]+)$"
                        },
                        "certificate": {
                          "description": "specifies name of the certificate wich will be used. Certificate must be placed in \"resource\" directory.",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "certificate_key": {
                          "description": "specifies name of the certificate key wich will be used. Certificate key must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "password_file": {
                          "description": "specifies name of the password file with secret keys for \"certificate_key\". Password file must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "client_certificate": {
                          "description": "specifies name of the client certificate wich will be used. Client Certificate must be placed in \"resource\" directory.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_client": {
                          "description": "Enables verification of client certificates. Default - no",
                          "type": "string"
                        },
                        "ocsp": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "enabled": {
                              "description": "Enables OCSP validation of the client certificate chain",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "on",
                                "off"
                              ]
                            },
                            "depth": {
                              "description": "Specify depth of certificate validation.",
                              "type": "integer",
                              "minimum": 1
                            },
                            "mode": {
                              "description": "Specify mode. In strict mode request will be blocked in case unsuccessfull certiticate checking, in flexible mode - request will not be blocked. Strict by default.",
                              "type": [
                                "number",
                                "string"
                              ],
                              "enum": [
                                "strict",
                                "flexible"
                              ]
                            },
                            "cache": {
                              "description": "Sets name and size of the cache that stores client certificates status for OCSP validation. The cache is shared between all worker processes",
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "size": {
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                                },
                                "lifetime": {
                                  "description": "Specifies cache lifetime. 3600 seconds by default",
                                  "type": [
                                    "number",
                                    "string"
                                  ],
                                  "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                                }
                              },
                              "required": [
                                "name",
                                "size"
                              ]
                            },
                            "use_cert_responder": {
                              "description": "Defines use or not responder from certificate(if specified). False by default",
                              "type": "boolean"
                            },
                            "responder_timeout": {
                              "description": "Specifies responder timeout. 60000 milliseconds by default",
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                            },
                            "responders": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "regex;(.+)": {
                                  "type": "array",
                                  "uniqueItems": true,
                                  "items": {
                                    "description": "Specifies the URL of the OCSP responder specified in the “Authority Information Access” certificate extension for validation of client certificates. Only http:// OCSP responders are supported",
                                    "type": [
                                      "number",
                                      "string"
                                    ],
                                    "pattern": "^(?:http:\\/\\/).+$"
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "enabled",
                            "depth"
                          ]
                        },
                        "verify_dn_trusted_path": {
                          "description": "Turn on verification of client dn. Use this file to match all regex dn from this file with dn of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_client_error_code": {
                          "description": "Defines the response code if verification client certificate failed. Default value is \"495\"(400)",
                          "type": "integer"
                        },
                        "verify_fingerprint_trusted_path": {
                          "description": "Turn on verification of client fingerprint. Use this file to match all fingerprints from file with fingerprint of client certificate. In case verification error return \"verify_client_error_code\"(495 default)",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "verify_depth": {
                          "description": "Sets the verification depth in the client certificates chain. Default - 1",
                          "type": "integer"
                        },
                        "protocols": {
                          "description": "specifies used ciphers. The default value is \"LSv1 TLSv1.1 TLSv1.2\" for RSA, and \"TLSv1\" for GOST",
                          "type": "array",
                          "uniqueItems": true,
                          "items": {
                            "type": "string"
                          }
                        },
                        "ciphers": {
                          "description": "specifies group of ciphes. The default value is \"HIGH:!aNULL:!MD5\".",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "prefix": {
                                "type": "string",
                                "enum": [
                                  "!",
                                  "+",
                                  "-"
                                ]
                              },
                              "value": {
                                "type": "array",
                                "uniqueItems": true,
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "DEFAULT",
                                    "COMPLEMENTOFDEFAULT",
                                    "ALL",
                                    "COMPLEMENTOFALL",
                                    "HIGH",
                                    "MEDIUM",
                                    "LOW",
                                    "EXP",
                                    "EXPORT",
                                    "EXPORT40",
                                    "EXPORT56",
                                    "eNULL",
                                    "NULL",
                                    "aNULL",
                                    "kRSA",
                                    "RSA",
                                    "kDHr",
                                    "kDHd",
                                    "kDH",
                                    "kDHE",
                                    "kEDH",
                                    "DHE",
                                    "EDH",
                                    "ADH",
                                    "DH",
                                    "kECDHr",
                                    "kECDHe",
                                    "kECDH",
                                    "kECDHE",
                                    "kEECDH",
                                    "ECDHE",
                                    "EECDH",
                                    "AECDH",
                                    "ECDH",
                                    "aRSA",
                                    "aDSS",
                                    "DSS",
                                    "aDH",
                                    "aECDH",
                                    "aECDSA",
                                    "ECDSA",
                                    "kFZA",
                                    "aFZA",
                                    "eFZA",
                                    "FZA",
                                    "TLSv1.2",
                                    "TLSv1",
                                    "SSLv3",
                                    "SSLv2",
                                    "AES128",
                                    "AES256",
                                    "AES",
                                    "AESGCM",
                                    "CAMELLIA128",
                                    "CAMELLIA256",
                                    "CAMELLIA",
                                    "3DES",
                                    "DES",
                                    "RC4",
                                    "RC2",
                                    "IDEA",
                                    "SEED",
                                    "MD5",
                                    "SHA1",
                                    "SHA",
                                    "SHA256",
                                    "SHA384",
                                    "aGOST",
                                    "aGOST01",
                                    "aGOST94",
                                    "kGOST",
                                    "GOST94",
                                    "GOST89MAC",
                                    "PSK",
                                    "SUITEB128",
                                    "SUITEB128ONLY",
                                    "SUITEB192",
                                    "@STRENGTH",
                                    "NULL-SHA256"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "value"
                            ]
                          }
                        },
                        "ciphers_str": {
                          "description": "specifies string of ciphers.",
                          "type": "string"
                        },
                        "dhparam": {
                          "description": "Specifies a file with DH parameters for DHE ciphers and enable usage of DHE ciphers.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        },
                        "session_timeout": {
                          "description": "specifies timeout of the ssl session. The default value is \"10m\"",
                          "type": [
                            "number",
                            "string"
                          ],
                          "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                        },
                        "session_cache": {
                          "description": "specifies cache size for ssl session. The default value evaluates automatically.",
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "off",
                                "none",
                                "builtin",
                                "shared"
                              ]
                            },
                            "name": {
                              "type": "string"
                            },
                            "size": {
                              "type": [
                                "number",
                                "string"
                              ],
                              "pattern": "^([0-9]+[kKmM]{1})|([0-9]+)$"
                            }
                          },
                          "required": [
                            "type"
                          ]
                        },
                        "reject_handshake": {
                          "description": "specifies whether reject all SSL handshake with a different server name (strict SNI check). Default is false.",
                          "type": "boolean"
                        },
                        "stapling": {
                          "description": "enables or disables stapling of OCSP responses by the server. Default - false.",
                          "type": "boolean"
                        },
                        "stapling_file": {
                          "description": "when set, the stapled OCSP response will be taken from the specified file instead of querying the OCSP responder specified in the server certificate.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "stapling_responder": {
                          "description": "overrides the URL of the OCSP responder specified in the “Authority Information Access” certificate extension.",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "stapling_verify": {
                          "description": "enables or disables verification of OCSP responses by the server. For verification to work, the certificate of the server certificate issuer, the root certificate, and all intermediate certificates should be configured as trusted using the trusted_certificate directive. Default - false.",
                          "type": "boolean"
                        },
                        "trusted_certificate": {
                          "description": "specifies a file with trusted CA certificates in the PEM format used to verify client certificates and OCSP responses if stapling is enabled.",
                          "type": "string",
                          "pattern": "^(?!\\/)(?!\\.\\.\\/)(?:(?!\\/\\.\\.\\/).)+?(?<!\\/\\.\\.)$"
                        }
                      },
                      "required": [
                        "certificate"
                      ],
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling_verify"
                            ],
                            "properties": {
                              "stapling_verify": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "then": {
                            "required": [
                              "trusted_certificate"
                            ]
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "verify_dn_trusted_path"
                            ],
                            "properties": {
                              "verify_dn_trusted_path": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "verify_client_error_code"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "verify_fingerprint_trusted_path"
                            ],
                            "properties": {
                              "verify_fingerprint_trusted_path": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "verify_client_error_code"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "ciphers_str"
                            ],
                            "properties": {
                              "ciphers_str": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "ciphers"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "ciphers"
                            ],
                            "properties": {
                              "ciphers": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "ciphers_str"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "certificate"
                            ],
                            "properties": {
                              "certificate": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_file"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_responder"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling"
                            ],
                            "properties": {
                              "stapling": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "stapling_verify"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "stapling_verify"
                            ],
                            "properties": {
                              "stapling_verify": {
                                "pattern": ".+"
                              }
                            }
                          },
                          "else": {
                            "not": {
                              "required": [
                                "trusted_certificate"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              },
              "hostname": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "url": {
                "description": "Defines the relative URL by which the service will work.",
                "type": "string"
              },
              "auth_basic": {
                "description": "Name to the username/password protected area.",
                "type": [
                  "number",
                  "string"
                ]
              },
              "auth_basic_user_file": {
                "description": "Directive with a path to the .htpasswd file that contain user/password pairs.",
                "type": [
                  "number",
                  "string"
                ]
              },
              "optional": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "log_level": {
                    "type": [
                      "number",
                      "string"
                    ],
                    "enum": [
                      "debug",
                      "info",
                      "notice",
                      "warn",
                      "error",
                      "crit",
                      "alert",
                      "off"
                    ]
                  },
                  "group_access_log": {
                    "description": "Specifies whether group or not the access log by status codes (2xx, 3xx, 4xx, 5xx, 404, 413, 429, 499, 500). Default is false.",
                    "type": "boolean"
                  },
                  "log_format": {
                    "description": "Specifies which format to use.",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "client_header_timeout": {
                    "description": "Sets the timeout for reading headers from the client. The default value is \"60s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "client_body_timeout": {
                    "description": "Sets the timeout for reading body from the client. The default value is \"60s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "keepalive_timeout": {
                    "description": "Limits the maximum time during which requests can be processed through one keep-alive connection. After this time is reached, the connection is closed following the subsequent request processing. By default -  timeout 1h",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "keepalive_time": {
                    "description": "Defines a timeout duaring which a connection will stay open. The default value is \"1h\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "keepalive_requests": {
                    "description": "Sets the maximum number of the request duaring keep-alive timeiut. The default value is \"10000\".",
                    "type": "integer"
                  },
                  "send_timeout_to_client": {
                    "description": "Sets the timeout for sending answer to the client. The default value is \"60s\".",
                    "type": [
                      "number",
                      "string"
                    ],
                    "pattern": "^(([0-9]+(ms){0,1})|([0-9]+[smhdwMy]{1}))$"
                  },
                  "opentelemetry": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "tracing": {
                        "description": "Defines parameters of Opentelemetry Tracing",
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "mode": {
                            "description": "Enable or disable tracing at this level",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "enabled": {
                                "description": "When on - tracing enabled, off - tracing disabled, var_based - if var specified in \"var\" parameter return \"on\", then enabled, else disabled",
                                "type": [
                                  "number",
                                  "string"
                                ],
                                "enum": [
                                  "on",
                                  "off",
                                  "var_based"
                                ]
                              },
                              "var": {
                                "description": "name of var which will be used, when enabled == var_based. Must return \"on\" or \"off\".",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            },
                            "allOf": [
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "enabled"
                                  ],
                                  "properties": {
                                    "enabled": {
                                      "const": "var_based"
                                    }
                                  }
                                },
                                "then": {
                                  "required": [
                                    "var"
                                  ]
                                }
                              }
                            ]
                          },
                          "trace_context": {
                            "description": "Specifies how to propagate traceparent/tracestate headers.   Default - ignore",
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "extract",
                              "inject",
                              "propagate",
                              "ignore"
                            ]
                          },
                          "span_name": {
                            "description": "Defines the name of span. By default - name of location, can be contain variables",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "span_attr": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "description": "name of attribute",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                },
                                "value": {
                                  "description": "value of attribute, can contain variables",
                                  "type": [
                                    "number",
                                    "string"
                                  ]
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            ""
                          ],
                          "properties": {
                            "": {
                              "properties": {
                                "system": {
                                  "type": "object",
                                  "required": [
                                    "system"
                                  ],
                                  "properties": {
                                    "system": {},
                                    "optional": {
                                      "type": "object",
                                      "required": [
                                        "opentelemetry"
                                      ],
                                      "properties": {
                                        "opentelemetry": {
                                          "pattern": ".+"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "tracing"
                            ]
                          }
                        }
                      }
                    ]
                  }
                }
              }
            },
            "required": [
              "id",
              "url",
              "auth_basic",
              "auth_basic_user_file"
            ],
            "allOf": [
              {
                "if": {
                  "type": "object",
                  "required": [
                    "optional"
                  ],
                  "properties": {
                    "optional": {
                      "type": "object",
                      "required": [
                        "event_hook"
                      ],
                      "properties": {
                        "event_hook": {
                          "pattern": ".+"
                        }
                      }
                    }
                  }
                },
                "then": {
                  "required": [
                    "name"
                  ]
                }
              }
            ]
          }
        },
        "service_artemis_proxy": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "Specifies the unique id for the service.",
                "type": [
                  "number",
                  "string"
                ],
                "pattern": "^[^.\\/\\\\()]+$"
              },
              "name": {
                "description": "Human readable Service identifier printed in log messages",
                "type": [
                  "number",
                  "string"
                ]
              },
              "trust_store": {
                "type": [
                  "number",
                  "string"
                ]
              },
              "key_store": {
                "type": [
                  "number",
                  "string"
                ]
              },
              "secrets": {
                "type": [
                  "number",
                  "string"
                ]
              },
              "artemis_sowa": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "from": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "ssl_options": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "trust_all": {
                            "type": "boolean"
                          },
                          "verify_host": {
                            "type": "boolean"
                          },
                          "enabled_cipher_suites": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "enabled_protocols": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "TLSv1.3",
                              "TLSv1.2",
                              "TLSv1.1",
                              "TLSv1",
                              "SSLv3",
                              "SSLv2Hello"
                            ]
                          }
                        },
                        "required": [
                          "enabled_cipher_suites",
                          "enabled_protocols"
                        ]
                      },
                      "failover_options": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "initial_connect_attempts": {
                            "description": "The number of reconnect attempts allowed before the first successful connection and before the client discovers the broker topology. The default is 0, meaning only one attempt is allowed",
                            "type": "integer"
                          },
                          "failover_on_initial_connection": {
                            "type": "boolean"
                          },
                          "reconnect_attempts": {
                            "type": "integer"
                          },
                          "retry_interval": {
                            "type": "integer"
                          },
                          "retry_interval_multiplier": {
                            "description": "The multiplier used to grow the retry interval. The default is 1.0, meaning equal intervals",
                            "type": "number"
                          },
                          "max_retry_interval": {
                            "type": "integer"
                          }
                        }
                      },
                      "core_options": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "connection_ttl": {
                            "description": "The time in milliseconds after which the connection is failed if the server sends no ping packets. The default is 60000 (1 minute). -1 disables the timeout",
                            "type": "integer"
                          },
                          "confirmation_window_size": {
                            "description": "The size in bytes of the command replay buffer. This is used for automatic session re-attachment on reconnect. The default is -1, meaning no automatic re-attachment.",
                            "type": "integer"
                          },
                          "client_failure_check_period": {
                            "description": "The time in milliseconds between checks for dead connections. The default is 30000 (30 seconds). -1 disables checking",
                            "type": "integer"
                          }
                        }
                      },
                      "discovery_options": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "ha": {
                            "description": "If enabled, track changes in the topology of HA brokers. The host and port from the URI is used only for the initial connection. After initial connection, the client receives the current failover endpoints and any updates resulting from topology changes. It is disabled by default",
                            "type": "boolean"
                          },
                          "use_topology_for_load_balancing": {
                            "description": "If enabled, use the cluster topology for connection load balancing. It is disabled by default",
                            "type": "boolean"
                          }
                        }
                      },
                      "ssl_enabled": {
                        "type": "boolean"
                      },
                      "brokers": {
                        "type": "array",
                        "items": {
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "queue": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "consumers_amount": {
                        "type": "integer"
                      },
                      "jms_type": {
                        "description": "Auto detected by default",
                        "enum": [
                          "Text",
                          "Bytes"
                        ]
                      },
                      "reply": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "queue": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "restricted_return_codes": {
                            "type": "array",
                            "items": {
                              "type": [
                                "number",
                                "string"
                              ]
                            }
                          },
                          "remove_headers_pattern": {
                            "description": "Specifies regex for headers removing BEFORE sending to reply queue",
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "jms_type": {
                            "enum": [
                              "Text",
                              "Bytes"
                            ]
                          }
                        },
                        "required": [
                          "queue"
                        ]
                      }
                    },
                    "required": [
                      "brokers",
                      "queue"
                    ],
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_enabled"
                          ],
                          "properties": {
                            "ssl_enabled": {
                              "const": false
                            }
                          }
                        },
                        "then": {
                          "required": []
                        },
                        "else": {
                          "required": [
                            "ssl_options"
                          ]
                        }
                      }
                    ]
                  },
                  "to": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "remove_headers_pattern": {
                        "description": "Specifies regex for headers removing BEFORE sending to sowa",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "service_id": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "service_type": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "service_url": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "timeout": {
                        "description": "Timeout in millisecond. Default is 10000",
                        "type": "integer"
                      },
                      "content_type": {
                        "type": [
                          "number",
                          "string"
                        ]
                      }
                    },
                    "required": [
                      "service_id",
                      "service_type"
                    ]
                  }
                },
                "required": [
                  "from",
                  "to"
                ]
              },
              "sowa_artemis": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "from": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "remove_headers_pattern": {
                        "description": "Specifies regex for headers removing BEFORE sending response to sowa",
                        "type": [
                          "number",
                          "string"
                        ]
                      }
                    }
                  },
                  "to": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "ssl_enabled": {
                        "type": "boolean"
                      },
                      "ssl_options": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "trust_all": {
                            "type": "boolean"
                          },
                          "verify_host": {
                            "type": "boolean"
                          },
                          "enabled_cipher_suites": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "enabled_protocols": {
                            "type": [
                              "number",
                              "string"
                            ],
                            "enum": [
                              "TLSv1.3",
                              "TLSv1.2",
                              "TLSv1.1",
                              "TLSv1",
                              "SSLv3",
                              "SSLv2Hello"
                            ]
                          }
                        },
                        "required": [
                          "enabled_cipher_suites",
                          "enabled_protocols"
                        ]
                      },
                      "failover_options": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "initial_connect_attempts": {
                            "description": "The number of reconnect attempts allowed before the first successful connection and before the client discovers the broker topology. The default is 0, meaning only one attempt is allowed",
                            "type": "integer"
                          },
                          "failover_on_initial_connection": {
                            "type": "boolean"
                          },
                          "reconnect_attempts": {
                            "type": "integer"
                          },
                          "retry_interval": {
                            "type": "integer"
                          },
                          "retry_interval_multiplier": {
                            "description": "The multiplier used to grow the retry interval. The default is 1.0, meaning equal intervals",
                            "type": "number"
                          },
                          "max_retry_interval": {
                            "type": "integer"
                          }
                        }
                      },
                      "core_options": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "connection_ttl": {
                            "description": "The time in milliseconds after which the connection is failed if the server sends no ping packets. The default is 60000 (1 minute). -1 disables the timeout",
                            "type": "integer"
                          },
                          "confirmation_window_size": {
                            "description": "The size in bytes of the command replay buffer. This is used for automatic session re-attachment on reconnect. The default is -1, meaning no automatic re-attachment.",
                            "type": "integer"
                          },
                          "client_failure_check_period": {
                            "description": "The time in milliseconds between checks for dead connections. The default is 30000 (30 seconds). -1 disables checking",
                            "type": "integer"
                          }
                        }
                      },
                      "discovery_options": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "ha": {
                            "description": "If enabled, track changes in the topology of HA brokers. The host and port from the URI is used only for the initial connection. After initial connection, the client receives the current failover endpoints and any updates resulting from topology changes. It is disabled by default",
                            "type": "boolean"
                          },
                          "use_topology_for_load_balancing": {
                            "description": "If enabled, use the cluster topology for connection load balancing. It is disabled by default",
                            "type": "boolean"
                          }
                        }
                      },
                      "brokers": {
                        "type": "array",
                        "items": {
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "queue": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "jms_type": {
                        "description": "Auto detected by default",
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "Text",
                          "Bytes"
                        ]
                      },
                      "remove_headers_pattern": {
                        "description": "Specifies regex for headers removing BEFORE sending to queue",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "reply": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "queue": {
                            "type": [
                              "number",
                              "string"
                            ]
                          },
                          "timeout": {
                            "type": "integer"
                          }
                        },
                        "required": [
                          "queue",
                          "timeout"
                        ]
                      }
                    },
                    "required": [
                      "brokers",
                      "queue"
                    ],
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "ssl_enabled"
                          ],
                          "properties": {
                            "ssl_enabled": {
                              "const": false
                            }
                          }
                        },
                        "then": {
                          "required": []
                        },
                        "else": {
                          "required": [
                            "ssl_options"
                          ]
                        }
                      }
                    ]
                  }
                },
                "required": [
                  "to"
                ]
              },
              "optional": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "jvm_options": {
                    "description": "Additional JVM options for specified profile",
                    "type": "array",
                    "items": {
                      "type": [
                        "number",
                        "string"
                      ]
                    }
                  },
                  "input_charset": {
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "output_charset": {
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "log_level": {
                    "description": "Specifies log level. Default is ALL",
                    "type": [
                      "number",
                      "string"
                    ],
                    "enum": [
                      "ALL",
                      "DEBUG",
                      "INFO",
                      "WARN",
                      "ERROR",
                      "FATAL",
                      "OFF",
                      "TRACE"
                    ]
                  },
                  "event_hook": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "stage": {
                        "type": "array",
                        "items": {
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "client_request",
                            "client_response",
                            "upstream_request",
                            "upstream_response"
                          ]
                        }
                      },
                      "log_body": {
                        "type": "boolean"
                      },
                      "log_headers": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "stage",
                      "log_body",
                      "log_headers"
                    ]
                  },
                  "access_log": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "max_file_size": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "max_history": {
                        "type": "integer"
                      },
                      "total_size_cap": {
                        "type": [
                          "number",
                          "string"
                        ]
                      }
                    }
                  },
                  "error_log": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "max_file_size": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "max_history": {
                        "type": "integer"
                      },
                      "total_size_cap": {
                        "type": [
                          "number",
                          "string"
                        ]
                      }
                    }
                  },
                  "connection_pool": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "enabled": {
                        "type": "boolean"
                      },
                      "max_connections": {
                        "type": "integer"
                      },
                      "max_sessions_per_connection": {
                        "type": "integer"
                      },
                      "connection_idle_timeout": {
                        "type": "integer"
                      }
                    }
                  },
                  "thread_pool": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "scheduled_thread_pool_max_size": {
                        "type": "integer"
                      }
                    }
                  }
                },
                "allOf": [
                  {
                    "if": {
                      "type": "object",
                      "required": [
                        ".."
                      ],
                      "properties": {
                        "..": {
                          "type": "object",
                          "required": [
                            "sowa_artemis"
                          ],
                          "properties": {
                            "sowa_artemis": {
                              "pattern": ".+"
                            }
                          }
                        }
                      }
                    },
                    "else": {
                      "not": {
                        "required": [
                          "connection_pool"
                        ]
                      }
                    }
                  }
                ]
              }
            },
            "required": [
              "id"
            ],
            "allOf": [
              {
                "if": {
                  "type": "object",
                  "required": [
                    "e"
                  ],
                  "properties": {
                    "e": {
                      "pattern": ".+"
                    }
                  }
                },
                "then": {
                  "required": [
                    "secrets"
                  ]
                }
              },
              {
                "if": {
                  "type": "object",
                  "required": [
                    "sowa_artemis"
                  ],
                  "properties": {
                    "sowa_artemis": {}
                  }
                },
                "else": {
                  "required": [
                    "artemis_sowa"
                  ]
                }
              },
              {
                "if": {
                  "type": "object",
                  "required": [
                    "artemis_sowa"
                  ],
                  "properties": {
                    "artemis_sowa": {}
                  }
                },
                "else": {
                  "required": [
                    "sowa_artemis"
                  ]
                }
              },
              {
                "if": {
                  "type": "object",
                  "required": [
                    "sowa_artemis"
                  ],
                  "properties": {
                    "sowa_artemis": {}
                  }
                },
                "then": {
                  "not": {
                    "required": [
                      "artemis_sowa"
                    ]
                  }
                }
              },
              {
                "if": {
                  "type": "object",
                  "required": [
                    "artemis_sowa"
                  ],
                  "properties": {
                    "artemis_sowa": {}
                  }
                },
                "then": {
                  "not": {
                    "required": [
                      "sowa_artemis"
                    ]
                  }
                }
              }
            ]
          }
        },
        "service_sowa_ipa": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "Specifies the unique id for the service.",
                "type": [
                  "number",
                  "string"
                ],
                "pattern": "^[^.\\/\\\\()]+$"
              },
              "name": {
                "description": "Human readable Service identifier printed in log messages",
                "type": [
                  "number",
                  "string"
                ]
              },
              "profile_version": {
                "description": "Specifies profile version of this service",
                "type": [
                  "number",
                  "string"
                ]
              },
              "description": {
                "type": [
                  "number",
                  "string"
                ]
              },
              "common": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "logging_path": {
                    "description": "Path to the directory where the log file will appear",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "logging_appender_console_level": {
                    "description": "Logging level of console appender, default OFF",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "logging_max_file_size": {
                    "description": "Max size of each log file, default 100MB",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "logging_max_history": {
                    "description": "The optional maxHistory property controls the maximum number of archive files to keep, asynchronously deleting older files, default 30",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "logging_total_size_cap": {
                    "description": "The optional totalSizeCap property controls the total size of all archive files, default 2GB",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "logging_appender_async_file_queue_size": {
                    "description": "The queueSize property takes an integer (greater than zero) representing the number of logging events to retain for delivery to the remote receiver, default 500",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "logging_package_org_springframework": {
                    "description": "Logging category of package, default INFO",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "logging_package_com_ibm_mq": {
                    "description": "Logging category of package, default INFO",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "logging_package_org_apache_camel": {
                    "description": "Logging category of package, default INFO",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "logging_package_org_apache_kafka": {
                    "description": "Logging category for package org.apache.kafka, default INFO",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "logging_package_ru_sbt": {
                    "description": "Logging category of package, default INFO",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "passwords_path": {
                    "description": "Path to the password file",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "jvm_options": {
                    "description": "Additional JVM options for specified profile",
                    "type": "array",
                    "items": {
                      "type": [
                        "number",
                        "string"
                      ]
                    }
                  },
                  "threadpool_pool_size": {
                    "description": "Sets the core pool size (threads to keep minimum in pool)",
                    "type": "integer"
                  },
                  "threadpool_max_pool_size": {
                    "description": "Sets the maximum pool size",
                    "type": "integer"
                  },
                  "threadpool_max_queue_size": {
                    "description": "Sets the maximum number of tasks in the work queue. Use -1 or an unbounded queue",
                    "type": "integer"
                  },
                  "threadpool_max_keepalive_time": {
                    "description": "Sets the keep alive time for inactive threads in seconds",
                    "type": "integer"
                  },
                  "threadpool_rejected_policy": {
                    "description": "Sets the handler for tasks which cannot be executed by the thread pool",
                    "type": [
                      "number",
                      "string"
                    ]
                  },
                  "threadpool_allow_core_thread_timeout": {
                    "description": "Sets whether to allow core threads to timeout",
                    "type": "boolean"
                  }
                }
              },
              "http_mq": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "from": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "schema": {
                        "description": "Connection protocol",
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "https",
                          "http"
                        ]
                      },
                      "port": {
                        "description": "Service port for input",
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 65535
                      },
                      "ssl_keystore_path": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "max_content_length": {
                        "type": "integer"
                      }
                    },
                    "required": [
                      "schema",
                      "port"
                    ]
                  },
                  "to": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "rq_jms_type": {
                          "description": "type of jms message",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rq_expiry": {
                          "description": "expiration time of mq message,ms",
                          "type": "integer"
                        },
                        "headers_whitelist": {
                          "description": "list of allowed headers",
                          "type": "array",
                          "items": {
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        },
                        "headers_blacklist": {
                          "description": "list of forbidden headers",
                          "type": "array",
                          "items": {
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        },
                        "route_id": {
                          "description": "Unique route id (also URN)",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rq_topic": {
                          "description": "Topic name for output",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rq_topic_string": {
                          "description": "Topic string for output",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rq_queue": {
                          "description": "Queue name for output",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rq_name": {
                          "description": "Manager name for output",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rq_hostname": {
                          "description": "MQ connection host",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rq_port": {
                          "description": "MQ connection port",
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 65535
                        },
                        "rq_channel": {
                          "description": "Connection channel",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rq_user_id": {
                          "description": "User name",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rq_ssl_cert_store": {
                          "description": "Path to SSL certificate store",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rq_ssl_cipher_suite": {
                          "description": "SSL cipher algorithm",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rs_queue": {
                          "description": "Queue name to get response",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rs_name": {
                          "description": "Manager name to get response",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rs_hostname": {
                          "description": "MQ connection host",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rs_port": {
                          "description": "MQ connection port",
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 65535
                        },
                        "rs_channel": {
                          "description": "MQ connection channel",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rs_user_id": {
                          "description": "User name",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rs_ssl_cert_store": {
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rs_ssl_cipher_suite": {
                          "description": "SSL cipher algorithm",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rs_timeout": {
                          "description": "Response timeout",
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9999999
                        }
                      },
                      "required": [
                        "route_id",
                        "rq_name",
                        "rq_hostname",
                        "rq_port",
                        "rq_channel"
                      ],
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "rq_queue"
                            ],
                            "properties": {
                              "rq_queue": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "rq_topic"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "rq_queue"
                            ],
                            "properties": {
                              "rq_queue": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "rq_topic_string"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "rq_topic"
                            ],
                            "properties": {
                              "rq_topic": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "rq_queue"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              },
              "mq_http": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "from": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "queue": {
                        "description": "Queue name for input",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "topic": {
                        "description": "Topic name for input",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "topic_string": {
                        "description": "Topic string WMQ parameter name for input",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "subscription_name": {
                        "description": "Subscription name WMQ parameter name for input",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "alternate_user_id": {
                        "description": "Alternate used id WMQ parameter name for input",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "name": {
                        "description": "Manager name for input",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "hostname": {
                        "description": "MQ connection host",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "port": {
                        "description": "MQ connection port",
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 65535
                      },
                      "channel": {
                        "description": "MQ connection channel",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "qm_poll_delay": {
                        "description": "queue polling interval",
                        "type": "integer"
                      },
                      "user_id": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "ssl_cert_store": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "ssl_cipher_suite": {
                        "description": "SSL cipher algorithm",
                        "type": [
                          "number",
                          "string"
                        ]
                      }
                    },
                    "required": [
                      "name",
                      "hostname",
                      "port",
                      "channel"
                    ],
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "topic"
                          ],
                          "properties": {
                            "topic": {}
                          }
                        },
                        "then": {
                          "not": {
                            "required": [
                              "queue"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "queue"
                          ],
                          "properties": {
                            "queue": {}
                          }
                        },
                        "then": {
                          "not": {
                            "required": [
                              "topic"
                            ]
                          }
                        }
                      }
                    ]
                  },
                  "to": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "route_id": {
                          "description": "Unique route id (also URN)",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "headers_whitelist": {
                          "description": "list of allowed headers",
                          "type": "array",
                          "items": {
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        },
                        "headers_blacklist": {
                          "description": "list of forbidden headers",
                          "type": "array",
                          "items": {
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        },
                        "schema": {
                          "description": "Connection protocol",
                          "type": [
                            "number",
                            "string"
                          ],
                          "enum": [
                            "https",
                            "http"
                          ]
                        },
                        "host": {
                          "description": "Connection host for output",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "port": {
                          "description": "Connection port for output",
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 65535
                        },
                        "urn": {
                          "description": "Host URN for output, begins with no /",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "ssl_keystore_path": {
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "required": [
                        "route_id",
                        "schema",
                        "host",
                        "port",
                        "urn"
                      ]
                    }
                  }
                }
              },
              "usock_kafka": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "from": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "usock_socket_timeout": {
                        "description": "usocket timeout value",
                        "type": "integer"
                      },
                      "usock_busy_timeout": {
                        "description": "usocket timeout",
                        "type": "integer"
                      },
                      "usock_max_concurrent_connections": {
                        "description": "usocket max concurrent connections value",
                        "type": "integer"
                      },
                      "usock_send_response": {
                        "description": "confirm delivery by sending response to http request. True by default",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "usock_socket_timeout",
                      "usock_busy_timeout",
                      "usock_max_concurrent_connections"
                    ]
                  },
                  "to": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "headers_whitelist": {
                        "description": "list of allowed headers",
                        "type": "array",
                        "items": {
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "headers_blacklist": {
                        "description": "list of forbidden headers",
                        "type": "array",
                        "items": {
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "brokers": {
                        "description": "list of kafka brokers",
                        "type": "array",
                        "items": {
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "request_required_acks": {
                        "description": "acknowledgment parameter",
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "-1",
                          "0",
                          "1",
                          "all"
                        ]
                      },
                      "batch_size": {
                        "description": "batch size in bytes",
                        "type": "integer"
                      },
                      "buffer_memory_size": {
                        "description": "batch buffer size in bytes",
                        "type": "integer"
                      },
                      "partition_key": {
                        "description": "partition to which the record will be sent",
                        "type": "integer"
                      },
                      "linger_ms": {
                        "description": "delay in message grouping before sending request",
                        "type": "integer"
                      },
                      "request_timeout_ms": {
                        "description": "timeout on getting request.required.acks in ms",
                        "type": "integer"
                      },
                      "enable_idempotence": {
                        "description": "enable idempotence",
                        "type": "boolean"
                      },
                      "max_request_size": {
                        "description": "maximum size of a request",
                        "type": "integer"
                      },
                      "max_block_ms": {
                        "description": "limit on the total time spent in fetching metadata in ms",
                        "type": "integer"
                      },
                      "retries": {
                        "description": "number of retries to resend message after getting an error",
                        "type": "integer"
                      },
                      "client_id": {
                        "description": "client id (tracking records, logging, setting quotas)",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "topic": {
                        "description": "topic to be recorded",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "key_serializer": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "String",
                          "ByteArray"
                        ]
                      },
                      "value_serializer": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "String",
                          "ByteArray"
                        ]
                      },
                      "ssl_keystore_path": {
                        "description": "Path to SSL certificate stores",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "ssl_truststore_path": {
                        "description": "Path to SSL truststore",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "ssl_endpoint_algorithm": {
                        "description": "Endpoint identification algorithm for SSL connection",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "ssl_cipher_suite": {
                        "description": "SSL cipher algorithm",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_brokers": {
                        "description": "(response) list of kafka brokers",
                        "type": "array",
                        "items": {
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "rs_client_id": {
                        "description": "(response) client id (tracking records, logging, setting quotas)",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_group_id": {
                        "description": "(response) consumer group id",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_fetch_max_bytes": {
                        "description": "(response) max fetch response in bytes",
                        "type": "integer"
                      },
                      "rs_fetch_min_bytes": {
                        "description": "(response) min fetch response in bytes",
                        "type": "integer"
                      },
                      "rs_fetch_wait_max_ms": {
                        "description": "(response) timeout on fetch request in ms (if there isn’t sufficient data to immediately satisfy fetch_min_bytes)",
                        "type": "integer"
                      },
                      "rs_max_poll_records": {
                        "description": "(response) maximum number of records returned in a single call to poll()",
                        "type": "integer"
                      },
                      "rs_session_timeout_ms": {
                        "description": "(response) timeout used to detect failures when using Kafka’s group management facilities.",
                        "type": "integer"
                      },
                      "rs_topic": {
                        "description": "(response) topic to subscribe to",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_timeout": {
                        "description": "(response) timeout",
                        "type": "integer"
                      },
                      "rs_ssl_keystore_path": {
                        "description": "(response) Path to SSL certificate store",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_ssl_truststore_path": {
                        "description": "(response) Path to SSL truststore",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_ssl_cipher_suite": {
                        "description": "SSL cipher algorithm",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_ssl_endpoint_algorithm": {
                        "description": "(response) Endpoint identification algorithm for SSL connection",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_provide_partition_index": {
                        "description": "(response) Expose kafka partition index from where message was consumed or not",
                        "type": "boolean"
                      },
                      "rs_create_consumer_backoff_max_attempts": {
                        "description": "(response) maximum number of attempts to create consumer before camel context is stopped. Default - 10",
                        "type": "integer"
                      }
                    },
                    "required": [
                      "brokers",
                      "topic"
                    ],
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_client_id"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_group_id"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_fetch_max_bytes"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_fetch_min_bytes"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_fetch_wait_max_ms"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_max_poll_records"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_session_timeout_ms"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_topic"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_timeout"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_ssl_keystore_path"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_ssl_truststore_path"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_ssl_endpoint_algorithm"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_provide_partition_index"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_create_consumer_backoff_max_attempts"
                            ]
                          }
                        }
                      }
                    ]
                  }
                }
              },
              "kafka_usock": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "from": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "brokers": {
                        "description": "list of kafka brokers",
                        "type": "array",
                        "items": {
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "client_id": {
                        "description": "client id (tracking records, logging, setting quotas)",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "group_id": {
                        "description": "consumer group id",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "auto_commit": {
                        "description": "enables auto commit",
                        "type": "boolean"
                      },
                      "auto_commit_interval": {
                        "description": "interval of auto offset commit",
                        "type": "integer"
                      },
                      "auto_offset_reset": {
                        "description": "initial offset policy",
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "latest",
                          "earliest",
                          "none"
                        ]
                      },
                      "fetch_max_bytes": {
                        "description": "max fetch response in bytes",
                        "type": "integer"
                      },
                      "fetch_min_bytes": {
                        "description": "min fetch response in bytes",
                        "type": "integer"
                      },
                      "fetch_wait_max_ms": {
                        "description": "timeout on fetch request in ms (if there isn’t sufficient data to immediately satisfy fetch_min_bytes)",
                        "type": "integer"
                      },
                      "max_poll_records": {
                        "description": "maximum number of records returned in a single call to poll()",
                        "type": "integer"
                      },
                      "session_timeout_ms": {
                        "description": "timeout used to detect failures when using Kafka’s group management facilities.",
                        "type": "integer"
                      },
                      "consumers_count": {
                        "description": "number of consumers that connect to kafka server",
                        "type": "integer"
                      },
                      "consumer_streams": {
                        "description": "consumers thread pool size",
                        "type": "integer"
                      },
                      "topics": {
                        "description": "list of topics to subscribe",
                        "type": "array",
                        "items": {
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "key_deserializer": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "String",
                          "ByteArray"
                        ]
                      },
                      "value_deserializer": {
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "String",
                          "ByteArray"
                        ]
                      },
                      "ssl_keystore_path": {
                        "description": "Path to SSL certificate store",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "ssl_truststore_path": {
                        "description": "Path to SSL truststore",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "ssl_endpoint_algorithm": {
                        "description": "Endpoint identification algorithm for SSL connection",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "ssl_cipher_suite": {
                        "description": "SSL cipher algorithm",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "provide_partition_index": {
                        "description": "Expose kafka partition index from where message was consumed or not",
                        "type": "boolean"
                      },
                      "create_consumer_backoff_max_attempts": {
                        "description": "Maximum number of attempts to create consumer before camel context is stopped. Default - 10",
                        "type": "integer"
                      },
                      "rs_brokers": {
                        "description": "(response) list of kafka brokers",
                        "type": "array",
                        "items": {
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "rs_request_required_acks": {
                        "description": "(response) acknowledgment parameter",
                        "type": [
                          "number",
                          "string"
                        ],
                        "enum": [
                          "-1",
                          "0",
                          "1",
                          "all"
                        ]
                      },
                      "rs_batch_size": {
                        "description": "(response) batch size in bytes",
                        "type": "integer"
                      },
                      "rs_buffer_memory_size": {
                        "description": "(response) batch buffer size in bytes",
                        "type": "integer"
                      },
                      "rs_partition_key": {
                        "description": "(response) partition to which the record will be sent",
                        "type": "integer"
                      },
                      "rs_linger_ms": {
                        "description": "(response) delay in message grouping before sending request",
                        "type": "integer"
                      },
                      "rs_request_timeout_ms": {
                        "description": "(response) timeout on getting request.required.acks in ms",
                        "type": "integer"
                      },
                      "rs_enable_idempotence": {
                        "description": "(response) enable idempotence",
                        "type": "boolean"
                      },
                      "rs_max_request_size": {
                        "description": "(response) maximum size of a request",
                        "type": "integer"
                      },
                      "rs_max_block_ms": {
                        "description": "(response) limit on the total time spent in fetching metadata in ms",
                        "type": "integer"
                      },
                      "rs_retries": {
                        "description": "(response) number of retries to resend message after getting an error",
                        "type": "integer"
                      },
                      "rs_client_id": {
                        "description": "(response) client id (tracking records, logging, setting quotas)",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_topic": {
                        "description": "(response) topic to be recorded",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_ssl_keystore_path": {
                        "description": "(response) Path to SSL certificate stores",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_ssl_truststore_path": {
                        "description": "(response) Path to SSL truststore",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_ssl_cipher_suite": {
                        "description": "SSL cipher algorithm",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_ssl_endpoint_algorithm": {
                        "description": "(response) Endpoint identification algorithm for SSL connection",
                        "type": [
                          "number",
                          "string"
                        ]
                      }
                    },
                    "required": [
                      "brokers",
                      "group_id",
                      "auto_commit",
                      "topics"
                    ],
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "then": {
                          "required": [
                            "rs_topic"
                          ]
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_request_required_acks"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_batch_size"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_buffer_memory_size"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_partition_key"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_linger_ms"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_request_timeout_ms"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_enable_idempotence"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_max_request_size"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_max_block_ms"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_retries"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_client_id"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_topic"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_ssl_keystore_path"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_ssl_truststore_path"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rs_brokers"
                          ],
                          "properties": {
                            "rs_brokers": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rs_ssl_endpoint_algorithm"
                            ]
                          }
                        }
                      }
                    ]
                  },
                  "to": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "headers_whitelist": {
                        "description": "list of allowed headers",
                        "type": "array",
                        "items": {
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "headers_blacklist": {
                        "description": "list of forbidden headers",
                        "type": "array",
                        "items": {
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "service_id": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "service_type": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "content_type": {
                        "description": "Content-Type header value",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "wait_response": {
                        "description": "Wait for http response to confirm delivery. True by default",
                        "type": "boolean"
                      },
                      "url": {
                        "description": "Request url. Default is /",
                        "type": [
                          "number",
                          "string"
                        ]
                      }
                    },
                    "required": [
                      "service_id",
                      "service_type"
                    ]
                  }
                }
              },
              "usock_mq": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "from": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "usock_socket_timeout": {
                        "description": "usocket timeout value",
                        "type": "integer"
                      },
                      "usock_busy_timeout": {
                        "description": "usocket timeout",
                        "type": "integer"
                      },
                      "usock_max_concurrent_connections": {
                        "description": "usocket max concurrent connections value",
                        "type": "integer"
                      }
                    },
                    "required": [
                      "usock_socket_timeout",
                      "usock_busy_timeout",
                      "usock_max_concurrent_connections"
                    ]
                  },
                  "to": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "rq_queue_access_count": {
                          "description": "rq_queue_access_count",
                          "type": "integer"
                        },
                        "rq_managers_count": {
                          "description": "rq_managers_count",
                          "type": "integer"
                        },
                        "main_configuration_reconnect_period": {
                          "description": "main_configuration_reconnect_period",
                          "type": "integer"
                        },
                        "queue_access_timeout": {
                          "description": "queue_access_timeout",
                          "type": "integer"
                        },
                        "rq_jms_type": {
                          "description": "type of jms message",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rq_expiry": {
                          "description": "expiration time of mq message,ms",
                          "type": "integer"
                        },
                        "headers_whitelist": {
                          "description": "list of allowed headers",
                          "type": "array",
                          "items": {
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        },
                        "headers_blacklist": {
                          "description": "list of forbidden headers",
                          "type": "array",
                          "items": {
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        },
                        "route_id": {
                          "description": "Unique route id (also URN)",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rq_topic": {
                          "description": "Topic name for output",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rq_topic_string": {
                          "description": "Topic string for output",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rq_queue": {
                          "description": "Queue name for output",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rq_name": {
                          "description": "Manager name for output",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rq_hostname": {
                          "description": "MQ connection host",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rq_port": {
                          "description": "MQ connection port",
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 65535
                        },
                        "rq_channel": {
                          "description": "Connection channel",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rq_user_id": {
                          "description": "User name",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rq_payload_charset": {
                          "description": "Payload Charset",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rq_ssl_cert_store": {
                          "description": "Path to SSL certificate store",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rq_ssl_cipher_suite": {
                          "description": "SSL cipher algorithm",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rq_pass_http_headers": {
                          "description": "Enable writing headers into rfh2 usr",
                          "type": "boolean"
                        },
                        "proxy_rfh2_folders": {
                          "description": "list of proxied mq folders, default - usr",
                          "type": "array",
                          "items": {
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        },
                        "rq_use_string_format_for_rfh2": {
                          "description": "Set string format for rfh2",
                          "type": "boolean"
                        },
                        "rq_mqgroup": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "rq_topic": {
                                "description": "Topic name for output",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "rq_topic_string": {
                                "description": "Topic string for output",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "rq_queue": {
                                "description": "Queue name for output",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "rq_name": {
                                "description": "Manager name for output",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "rq_hostname": {
                                "description": "MQ connection host",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "rq_port": {
                                "description": "MQ connection port",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 65535
                              },
                              "rq_channel": {
                                "description": "Connection channel",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "rq_user_id": {
                                "description": "User name",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "rq_payload_charset": {
                                "description": "Payload Charset",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "rq_ssl_cert_store": {
                                "description": "Path to SSL certificate store",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "rq_ssl_cipher_suite": {
                                "description": "SSL cipher algorithm",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              }
                            },
                            "required": [
                              "rq_name",
                              "rq_hostname",
                              "rq_port",
                              "rq_channel"
                            ],
                            "allOf": [
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "rq_queue"
                                  ],
                                  "properties": {
                                    "rq_queue": {}
                                  }
                                },
                                "then": {
                                  "not": {
                                    "required": [
                                      "rq_topic"
                                    ]
                                  }
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "rq_queue"
                                  ],
                                  "properties": {
                                    "rq_queue": {}
                                  }
                                },
                                "then": {
                                  "not": {
                                    "required": [
                                      "rq_topic_string"
                                    ]
                                  }
                                }
                              },
                              {
                                "if": {
                                  "type": "object",
                                  "required": [
                                    "rq_topic"
                                  ],
                                  "properties": {
                                    "rq_topic": {}
                                  }
                                },
                                "then": {
                                  "not": {
                                    "required": [
                                      "rq_queue"
                                    ]
                                  }
                                }
                              }
                            ]
                          }
                        },
                        "rs_queue_access_count": {
                          "description": "rs_queue_access_count",
                          "type": "integer"
                        },
                        "rs_managers_count": {
                          "description": "rs_managers_count",
                          "type": "integer"
                        },
                        "rs_queue": {
                          "description": "Queue name to get response",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rs_name": {
                          "description": "Manager name to get response",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rs_hostname": {
                          "description": "MQ connection host",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rs_port": {
                          "description": "MQ connection port",
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 65535
                        },
                        "rs_channel": {
                          "description": "MQ connection channel",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rs_user_id": {
                          "description": "User name",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rs_ssl_cert_store": {
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rs_ssl_cipher_suite": {
                          "description": "SSL cipher algorithm",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "rs_timeout": {
                          "description": "Response timeout",
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9999999
                        },
                        "rs_mqgroup": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "rs_queue": {
                                "description": "Queue name to get response",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "rs_name": {
                                "description": "Manager name to get response",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "rs_hostname": {
                                "description": "MQ connection host",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "rs_port": {
                                "description": "MQ connection port",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 65535
                              },
                              "rs_channel": {
                                "description": "MQ connection channel",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "rs_user_id": {
                                "description": "User name",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "rs_ssl_cert_store": {
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "rs_ssl_cipher_suite": {
                                "description": "SSL cipher algorithm",
                                "type": [
                                  "number",
                                  "string"
                                ]
                              },
                              "rs_timeout": {
                                "description": "Response timeout",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9999999
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "route_id",
                        "rq_name",
                        "rq_hostname",
                        "rq_port",
                        "rq_channel"
                      ],
                      "allOf": [
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "rq_queue"
                            ],
                            "properties": {
                              "rq_queue": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "rq_topic"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "rq_queue"
                            ],
                            "properties": {
                              "rq_queue": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "rq_topic_string"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "rq_topic"
                            ],
                            "properties": {
                              "rq_topic": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "rq_queue"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "proxy_rfh2_folders"
                            ],
                            "properties": {
                              "proxy_rfh2_folders": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "rq_pass_http_headers"
                              ]
                            }
                          }
                        },
                        {
                          "if": {
                            "type": "object",
                            "required": [
                              "rq_pass_http_headers"
                            ],
                            "properties": {
                              "rq_pass_http_headers": {}
                            }
                          },
                          "then": {
                            "not": {
                              "required": [
                                "proxy_rfh2_folders"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              },
              "mq_usock": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "from": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "rq_queue": {
                        "description": "Queue name for input",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rq_topic": {
                        "description": "Topic name for input",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rq_topic_string": {
                        "description": "Topic string WMQ parameter name for input",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rq_topic_durability": {
                        "description": "Topic durability",
                        "type": "boolean"
                      },
                      "rq_subscription_name": {
                        "description": "Subscription name WMQ parameter name for input",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rq_rfh_routing_header": {
                        "description": "Name of header which contains service name",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rq_alternate_user_id": {
                        "description": "Alternate used id WMQ parameter name for input",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rq_name": {
                        "description": "Manager name for input",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rq_hostname": {
                        "description": "MQ connection host",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rq_port": {
                        "description": "MQ connection port",
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 65535
                      },
                      "rq_channel": {
                        "description": "MQ connection channel",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rq_reconnect_delay": {
                        "description": "interval between reconnect",
                        "type": "integer"
                      },
                      "rq_threads": {
                        "description": "number of consumer threads",
                        "type": "integer"
                      },
                      "rq_user_id": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rq_ssl_cert_store": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rq_ssl_cipher_suite": {
                        "description": "SSL cipher algorithm",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rq_reconnect_on_startup": {
                        "description": "enable reconnect on start",
                        "type": "boolean"
                      },
                      "rs_topic": {
                        "description": "Topic name to get response",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_queue": {
                        "description": "Queue name to get response",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_name": {
                        "description": "Manager name to get response",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_hostname": {
                        "description": "MQ connection host",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_port": {
                        "description": "MQ connection port",
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 65535
                      },
                      "rs_channel": {
                        "description": "MQ connection channel",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_user_id": {
                        "description": "User name",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_payload_charset": {
                        "description": "Payload Charset",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_jms_type": {
                        "description": "JMS Type",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_expiry": {
                        "description": "expiration time of mq message,ms",
                        "type": "integer"
                      },
                      "rs_ssl_cert_store": {
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_ssl_cipher_suite": {
                        "description": "SSL cipher algorithm",
                        "type": [
                          "number",
                          "string"
                        ]
                      },
                      "rs_timeout": {
                        "description": "Response timeout",
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 9999999
                      }
                    },
                    "required": [
                      "rq_name",
                      "rq_hostname",
                      "rq_port",
                      "rq_channel"
                    ],
                    "allOf": [
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rq_topic"
                          ],
                          "properties": {
                            "rq_topic": {}
                          }
                        },
                        "then": {
                          "not": {
                            "required": [
                              "rq_queue"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rq_queue"
                          ],
                          "properties": {
                            "rq_queue": {}
                          }
                        },
                        "then": {
                          "not": {
                            "required": [
                              "rq_topic"
                            ]
                          }
                        }
                      },
                      {
                        "if": {
                          "type": "object",
                          "required": [
                            "rq_queue"
                          ],
                          "properties": {
                            "rq_queue": {
                              "pattern": ".+"
                            }
                          }
                        },
                        "else": {
                          "not": {
                            "required": [
                              "rq_threads"
                            ]
                          }
                        }
                      }
                    ]
                  },
                  "to": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "route_id": {
                          "description": "Unique route id (also URN)",
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "headers_whitelist": {
                          "description": "list of allowed headers",
                          "type": "array",
                          "items": {
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        },
                        "headers_blacklist": {
                          "description": "list of forbidden headers",
                          "type": "array",
                          "items": {
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        },
                        "proxy_rfh2_folders": {
                          "description": "list of proxied mq folders, default - usr",
                          "type": "array",
                          "items": {
                            "type": [
                              "number",
                              "string"
                            ]
                          }
                        },
                        "service_id": {
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "service_type": {
                          "type": [
                            "number",
                            "string"
                          ]
                        },
                        "content_type": {
                          "description": "Content-Type header value",
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "required": [
                        "route_id",
                        "service_id",
                        "service_type"
                      ]
                    }
                  }
                }
              }
            },
            "required": [
              "id"
            ]
          }
        }
      }
    }
  },
  "required": [
    "version",
    "profile",
    "system",
    "service"
  ]
}