{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/couchbase/main/json-schema/couchbase-search-index-list-schema.json",
  "title": "SearchIndexList",
  "description": "List of all search index definitions",
  "x-generated": "2026-10-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/couchbase-search-indexes-api-openapi.yml#/components/schemas/SearchIndexList",
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "description": "Response status"
    },
    "indexDefs": {
      "type": "object",
      "description": "Container for index definitions",
      "properties": {
        "uuid": {
          "type": "string",
          "description": "UUID of the index definitions set"
        },
        "indexDefs": {
          "type": "object",
          "description": "Map of index name to index definition",
          "additionalProperties": {
            "$ref": "#/$defs/SearchIndexDefinition"
          }
        }
      }
    }
  },
  "$defs": {
    "SearchIndexDefinition": {
      "type": "object",
      "description": "Full Text Search index definition",
      "required": [
        "name",
        "type",
        "sourceName"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the search index"
        },
        "type": {
          "type": "string",
          "description": "Type of the index",
          "enum": [
            "fulltext-index",
            "fulltext-alias"
          ]
        },
        "sourceName": {
          "type": "string",
          "description": "Name of the source bucket"
        },
        "sourceType": {
          "type": "string",
          "description": "Type of the data source",
          "default": "couchbase"
        },
        "sourceUUID": {
          "type": "string",
          "description": "UUID of the source bucket"
        },
        "planParams": {
          "type": "object",
          "description": "Index partition and replication plan",
          "properties": {
            "maxPartitionsPerPIndex": {
              "type": "integer",
              "description": "Maximum partitions per index partition"
            },
            "numReplicas": {
              "type": "integer",
              "description": "Number of index replicas",
              "minimum": 0
            },
            "indexPartitions": {
              "type": "integer",
              "description": "Number of index partitions"
            }
          }
        },
        "params": {
          "type": "object",
          "description": "Index configuration parameters",
          "properties": {
            "mapping": {
              "type": "object",
              "description": "Type mapping configuration",
              "properties": {
                "default_mapping": {
                  "type": "object",
                  "description": "Default type mapping",
                  "properties": {
                    "enabled": {
                      "type": "boolean",
                      "description": "Whether the default mapping is enabled"
                    },
                    "dynamic": {
                      "type": "boolean",
                      "description": "Whether to dynamically index all fields"
                    }
                  }
                },
                "types": {
                  "type": "object",
                  "description": "Named type mappings",
                  "additionalProperties": {
                    "type": "object"
                  }
                },
                "default_analyzer": {
                  "type": "string",
                  "description": "Default analyzer for the index"
                },
                "default_type": {
                  "type": "string",
                  "description": "Default type for documents"
                }
              }
            },
            "doc_config": {
              "type": "object",
              "description": "Document configuration",
              "properties": {
                "mode": {
                  "type": "string",
                  "description": "Document type identification mode",
                  "enum": [
                    "scope.collection.type_field",
                    "scope.collection.docid_prefix",
                    "scope.collection.docid_regexp",
                    "type_field",
                    "docid_prefix",
                    "docid_regexp"
                  ]
                }
              }
            },
            "store": {
              "type": "object",
              "description": "Store configuration",
              "properties": {
                "indexType": {
                  "type": "string",
                  "description": "Index storage type",
                  "enum": [
                    "scorch"
                  ]
                }
              }
            }
          }
        },
        "uuid": {
          "type": "string",
          "description": "UUID of the index"
        }
      }
    }
  }
}