{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/JSONQueryOnCallTableWithStringTypeColumn",
  "title": "JSONQueryOnCallTableWithStringTypeColumn",
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "description": "This is the type of query. Only allowed type is \"vapiql-json\".",
      "example": "vapiql-json",
      "enum": [
        "vapiql-json"
      ]
    },
    "table": {
      "type": "string",
      "description": "This is the table that will be queried.",
      "enum": [
        "call"
      ]
    },
    "filters": {
      "type": "array",
      "description": "This is the filters to apply to the insight.\nThe discriminator automatically selects the correct filter type based on column and operator.",
      "items": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/FilterStringTypeColumnOnCallTable"
          },
          {
            "$ref": "#/components/schemas/FilterStringArrayTypeColumnOnCallTable"
          },
          {
            "$ref": "#/components/schemas/FilterNumberTypeColumnOnCallTable"
          },
          {
            "$ref": "#/components/schemas/FilterNumberArrayTypeColumnOnCallTable"
          },
          {
            "$ref": "#/components/schemas/FilterDateTypeColumnOnCallTable"
          },
          {
            "$ref": "#/components/schemas/FilterStructuredOutputColumnOnCallTable"
          }
        ]
      }
    },
    "column": {
      "type": "string",
      "enum": [
        "id",
        "artifact.structuredOutputs[OutputID]"
      ],
      "description": "This is the column that will be queried in the selected table.\nAvailable columns depend on the selected table.\nString Type columns are columns where the rows store String data",
      "example": "id"
    },
    "operation": {
      "type": "string",
      "enum": [
        "count"
      ],
      "description": "This is the aggregation operation to perform on the column.\nWhen the column is a string type, the operation must be \"count\".",
      "example": "count"
    },
    "name": {
      "type": "string",
      "description": "This is the name of the query.\nIt will be used to label the query in the insight board on the UI.",
      "example": "Total Calls"
    }
  },
  "required": [
    "type",
    "table",
    "column",
    "operation"
  ]
}