{
  "required": [
    "fields",
    "id",
    "name",
    "service"
  ],
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "maxLength": 256,
      "minLength": 1,
      "pattern": "^((?!::).)*$",
      "type": "string"
    },
    "fullyQualifiedName": {
      "maxLength": 3072,
      "minLength": 1,
      "type": "string"
    },
    "displayName": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "version": {
      "type": "number",
      "format": "double"
    },
    "updatedAt": {
      "type": "integer",
      "format": "int64"
    },
    "updatedBy": {
      "type": "string"
    },
    "impersonatedBy": {
      "type": "string"
    },
    "service": {
      "$ref": "#/components/schemas/EntityReference"
    },
    "serviceType": {
      "type": "string",
      "enum": [
        "ElasticSearch",
        "OpenSearch",
        "CustomSearch"
      ]
    },
    "fields": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/SearchIndexField"
      }
    },
    "searchIndexSettings": {
      "$ref": "#/components/schemas/SearchIndexSettings"
    },
    "indexType": {
      "type": "string",
      "enum": [
        "Index",
        "IndexTemplate"
      ]
    },
    "sampleData": {
      "$ref": "#/components/schemas/SearchIndexSampleData"
    },
    "owners": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EntityReference"
      }
    },
    "followers": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EntityReference"
      }
    },
    "tags": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TagLabel"
      }
    },
    "href": {
      "type": "string",
      "format": "uri"
    },
    "changeDescription": {
      "$ref": "#/components/schemas/ChangeDescription"
    },
    "incrementalChangeDescription": {
      "$ref": "#/components/schemas/ChangeDescription"
    },
    "deleted": {
      "type": "boolean"
    },
    "extension": {
      "type": "object"
    },
    "domains": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EntityReference"
      }
    },
    "dataProducts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EntityReference"
      }
    },
    "dataContract": {
      "$ref": "#/components/schemas/EntityReference"
    },
    "votes": {
      "$ref": "#/components/schemas/Votes"
    },
    "lifeCycle": {
      "$ref": "#/components/schemas/LifeCycle"
    },
    "certification": {
      "$ref": "#/components/schemas/AssetCertification"
    },
    "sourceHash": {
      "maxLength": 32,
      "minLength": 1,
      "type": "string"
    },
    "entityStatus": {
      "type": "string",
      "enum": [
        "Draft",
        "In Review",
        "Approved",
        "Archived",
        "Deprecated",
        "Rejected",
        "Unprocessed"
      ]
    },
    "provider": {
      "type": "string",
      "enum": [
        "system",
        "user",
        "automation"
      ]
    },
    "children": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EntityReference"
      }
    },
    "style": {
      "$ref": "#/components/schemas/Style"
    },
    "experts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EntityReference"
      }
    },
    "reviewers": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EntityReference"
      }
    },
    "usageSummary": {
      "$ref": "#/components/schemas/UsageDetails"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/openmetadata/main/json-schema/searchindex.json"
}