{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/StrictModeConfig",
  "title": "StrictModeConfig",
  "type": "object",
  "properties": {
    "enabled": {
      "description": "Whether strict mode is enabled for a collection or not.",
      "type": "boolean",
      "nullable": true
    },
    "max_query_limit": {
      "description": "Max allowed `limit` parameter for all APIs that don't have their own max limit.",
      "type": "integer",
      "format": "uint",
      "minimum": 1,
      "nullable": true
    },
    "max_timeout": {
      "description": "Max allowed `timeout` parameter.",
      "type": "integer",
      "format": "uint",
      "minimum": 1,
      "nullable": true
    },
    "unindexed_filtering_retrieve": {
      "description": "Allow usage of unindexed fields in retrieval based (e.g. search) filters.",
      "type": "boolean",
      "nullable": true
    },
    "unindexed_filtering_update": {
      "description": "Allow usage of unindexed fields in filtered updates (e.g. delete by payload).",
      "type": "boolean",
      "nullable": true
    },
    "search_max_hnsw_ef": {
      "description": "Max HNSW ef value allowed in search parameters.",
      "type": "integer",
      "format": "uint",
      "minimum": 0,
      "nullable": true
    },
    "search_allow_exact": {
      "description": "Whether exact search is allowed.",
      "type": "boolean",
      "nullable": true
    },
    "search_max_oversampling": {
      "description": "Max oversampling value allowed in search.",
      "type": "number",
      "format": "double",
      "nullable": true
    },
    "upsert_max_batchsize": {
      "description": "Max batchsize when upserting",
      "type": "integer",
      "format": "uint",
      "minimum": 0,
      "nullable": true
    },
    "search_max_batchsize": {
      "description": "Max batchsize when searching",
      "type": "integer",
      "format": "uint",
      "minimum": 0,
      "nullable": true
    },
    "max_collection_vector_size_bytes": {
      "description": "Max size of a collections vector storage in bytes, ignoring replicas.",
      "type": "integer",
      "format": "uint",
      "minimum": 0,
      "nullable": true
    },
    "read_rate_limit": {
      "description": "Max number of read operations per minute per replica",
      "type": "integer",
      "format": "uint",
      "minimum": 1,
      "nullable": true
    },
    "write_rate_limit": {
      "description": "Max number of write operations per minute per replica",
      "type": "integer",
      "format": "uint",
      "minimum": 1,
      "nullable": true
    },
    "max_collection_payload_size_bytes": {
      "description": "Max size of a collections payload storage in bytes",
      "type": "integer",
      "format": "uint",
      "minimum": 0,
      "nullable": true
    },
    "max_points_count": {
      "description": "Max number of points estimated in a collection",
      "type": "integer",
      "format": "uint",
      "minimum": 1,
      "nullable": true
    },
    "filter_max_conditions": {
      "description": "Max conditions a filter can have.",
      "type": "integer",
      "format": "uint",
      "minimum": 0,
      "nullable": true
    },
    "condition_max_size": {
      "description": "Max size of a condition, eg. items in `MatchAny`.",
      "type": "integer",
      "format": "uint",
      "minimum": 0,
      "nullable": true
    },
    "multivector_config": {
      "description": "Multivector strict mode configuration",
      "anyOf": [
        {
          "$ref": "#/components/schemas/StrictModeMultivectorConfig"
        },
        {
          "nullable": true
        }
      ]
    },
    "sparse_config": {
      "description": "Sparse vector strict mode configuration",
      "anyOf": [
        {
          "$ref": "#/components/schemas/StrictModeSparseConfig"
        },
        {
          "nullable": true
        }
      ]
    },
    "max_payload_index_count": {
      "description": "Max number of payload indexes in a collection",
      "type": "integer",
      "format": "uint",
      "minimum": 0,
      "nullable": true
    }
  }
}