{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/DataTableNode",
  "title": "DataTableNode",
  "additionalProperties": false,
  "properties": {
    "allowSorting": {
      "default": null,
      "description": "Can the user click on column headers to sort the table? (default: true)",
      "title": "Allowsorting",
      "type": "boolean",
      "nullable": true
    },
    "columns": {
      "default": null,
      "description": "Columns shown in the table, unless the `source` provides them.",
      "title": "Columns",
      "items": {
        "type": "string"
      },
      "type": "array",
      "nullable": true
    },
    "context": {
      "default": null,
      "description": "Context for the table, used by components like ColumnConfigurator",
      "allOf": [
        {
          "$ref": "#/components/schemas/DataTableNodeViewPropsContext"
        }
      ],
      "nullable": true
    },
    "contextKey": {
      "default": null,
      "description": "Context key for universal column configuration (e.g., \"survey:123\")",
      "title": "Contextkey",
      "type": "string",
      "nullable": true
    },
    "defaultColumns": {
      "default": null,
      "description": "Default columns to use when resetting column configuration",
      "title": "Defaultcolumns",
      "items": {
        "type": "string"
      },
      "type": "array",
      "nullable": true
    },
    "embedded": {
      "default": null,
      "description": "Uses the embedded version of LemonTable",
      "title": "Embedded",
      "type": "boolean",
      "nullable": true
    },
    "expandable": {
      "default": null,
      "description": "Can expand row to show raw event data (default: true)",
      "title": "Expandable",
      "type": "boolean",
      "nullable": true
    },
    "full": {
      "default": null,
      "description": "Show with most visual options enabled. Used in scenes.",
      "title": "Full",
      "type": "boolean",
      "nullable": true
    },
    "hiddenColumns": {
      "default": null,
      "description": "Columns that aren't shown in the table, even if in columns or returned data",
      "title": "Hiddencolumns",
      "items": {
        "type": "string"
      },
      "type": "array",
      "nullable": true
    },
    "kind": {
      "default": "DataTableNode",
      "title": "Kind",
      "type": "string",
      "enum": [
        "DataTableNode"
      ]
    },
    "pinnedColumns": {
      "default": null,
      "description": "Columns that are sticky when scrolling horizontally",
      "title": "Pinnedcolumns",
      "items": {
        "type": "string"
      },
      "type": "array",
      "nullable": true
    },
    "propertiesViaUrl": {
      "default": null,
      "description": "Link properties via the URL (default: false)",
      "title": "Propertiesviaurl",
      "type": "boolean",
      "nullable": true
    },
    "response": {
      "default": null,
      "title": "Response",
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "$ref": "#/components/schemas/Response"
        },
        {
          "$ref": "#/components/schemas/Response1"
        },
        {
          "$ref": "#/components/schemas/Response2"
        },
        {
          "$ref": "#/components/schemas/Response3"
        },
        {
          "$ref": "#/components/schemas/Response4"
        },
        {
          "$ref": "#/components/schemas/Response5"
        },
        {
          "$ref": "#/components/schemas/Response6"
        },
        {
          "$ref": "#/components/schemas/Response8"
        },
        {
          "$ref": "#/components/schemas/Response9"
        },
        {
          "$ref": "#/components/schemas/Response10"
        },
        {
          "$ref": "#/components/schemas/Response11"
        },
        {
          "$ref": "#/components/schemas/Response12"
        },
        {
          "$ref": "#/components/schemas/Response13"
        },
        {
          "$ref": "#/components/schemas/Response14"
        },
        {
          "$ref": "#/components/schemas/Response15"
        },
        {
          "$ref": "#/components/schemas/Response16"
        },
        {
          "$ref": "#/components/schemas/Response18"
        },
        {
          "$ref": "#/components/schemas/Response19"
        },
        {
          "$ref": "#/components/schemas/Response20"
        },
        {
          "$ref": "#/components/schemas/Response21"
        },
        {
          "$ref": "#/components/schemas/Response22"
        },
        {
          "$ref": "#/components/schemas/Response23"
        },
        {
          "$ref": "#/components/schemas/Response24"
        },
        {
          "$ref": "#/components/schemas/Response25"
        },
        {
          "$ref": "#/components/schemas/Response26"
        }
      ],
      "nullable": true
    },
    "showActions": {
      "default": null,
      "description": "Show the kebab menu at the end of the row",
      "title": "Showactions",
      "type": "boolean",
      "nullable": true
    },
    "showColumnConfigurator": {
      "default": null,
      "description": "Show a button to configure the table's columns if possible",
      "title": "Showcolumnconfigurator",
      "type": "boolean",
      "nullable": true
    },
    "showCount": {
      "default": null,
      "description": "Show count of total and filtered results",
      "title": "Showcount",
      "type": "boolean",
      "nullable": true
    },
    "showDateRange": {
      "default": null,
      "description": "Show date range selector",
      "title": "Showdaterange",
      "type": "boolean",
      "nullable": true
    },
    "showElapsedTime": {
      "default": null,
      "description": "Show the time it takes to run a query",
      "title": "Showelapsedtime",
      "type": "boolean",
      "nullable": true
    },
    "showEventFilter": {
      "default": null,
      "description": "Include an event filter above the table (EventsNode only)",
      "title": "Showeventfilter",
      "type": "boolean",
      "nullable": true
    },
    "showEventsFilter": {
      "default": null,
      "description": "Include an events filter above the table to filter by multiple events (EventsQuery only)",
      "title": "Showeventsfilter",
      "type": "boolean",
      "nullable": true
    },
    "showExport": {
      "default": null,
      "description": "Show the export button",
      "title": "Showexport",
      "type": "boolean",
      "nullable": true
    },
    "showHogQLEditor": {
      "default": null,
      "description": "Include a HogQL query editor above HogQL tables",
      "title": "Showhogqleditor",
      "type": "boolean",
      "nullable": true
    },
    "showOpenEditorButton": {
      "default": null,
      "description": "Show a button to open the current query as a new insight. (default: true)",
      "title": "Showopeneditorbutton",
      "type": "boolean",
      "nullable": true
    },
    "showPersistentColumnConfigurator": {
      "default": null,
      "description": "Show a button to configure and persist the table's default columns if possible",
      "title": "Showpersistentcolumnconfigurator",
      "type": "boolean",
      "nullable": true
    },
    "showPropertyFilter": {
      "default": null,
      "description": "Include a property filter above the table",
      "title": "Showpropertyfilter",
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "items": {
            "$ref": "#/components/schemas/TaxonomicFilterGroupType"
          },
          "type": "array"
        }
      ],
      "nullable": true
    },
    "showRecordingColumn": {
      "default": null,
      "description": "Show a recording column for events with session recordings",
      "title": "Showrecordingcolumn",
      "type": "boolean",
      "nullable": true
    },
    "showReload": {
      "default": null,
      "description": "Show a reload button",
      "title": "Showreload",
      "type": "boolean",
      "nullable": true
    },
    "showResultsTable": {
      "default": null,
      "description": "Show a results table",
      "title": "Showresultstable",
      "type": "boolean",
      "nullable": true
    },
    "showSavedFilters": {
      "default": null,
      "description": "Show saved filters feature for this table (requires uniqueKey)",
      "title": "Showsavedfilters",
      "type": "boolean",
      "nullable": true
    },
    "showSavedQueries": {
      "default": null,
      "description": "Shows a list of saved queries",
      "title": "Showsavedqueries",
      "type": "boolean",
      "nullable": true
    },
    "showSearch": {
      "default": null,
      "description": "Include a free text search field (PersonsNode only)",
      "title": "Showsearch",
      "type": "boolean",
      "nullable": true
    },
    "showSourceQueryOptions": {
      "default": null,
      "description": "Show actors query options and back to source",
      "title": "Showsourcequeryoptions",
      "type": "boolean",
      "nullable": true
    },
    "showTableViews": {
      "default": null,
      "description": "Show table views feature for this table (requires uniqueKey)",
      "title": "Showtableviews",
      "type": "boolean",
      "nullable": true
    },
    "showTestAccountFilters": {
      "default": null,
      "description": "Show filter to exclude test accounts",
      "title": "Showtestaccountfilters",
      "type": "boolean",
      "nullable": true
    },
    "showTimings": {
      "default": null,
      "description": "Show a detailed query timing breakdown",
      "title": "Showtimings",
      "type": "boolean",
      "nullable": true
    },
    "source": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/EventsNode"
        },
        {
          "$ref": "#/components/schemas/EventsQuery"
        },
        {
          "$ref": "#/components/schemas/PersonsNode"
        },
        {
          "$ref": "#/components/schemas/ActorsQuery"
        },
        {
          "$ref": "#/components/schemas/GroupsQuery"
        },
        {
          "$ref": "#/components/schemas/HogQLQuery"
        },
        {
          "$ref": "#/components/schemas/WebOverviewQuery"
        },
        {
          "$ref": "#/components/schemas/WebStatsTableQuery"
        },
        {
          "$ref": "#/components/schemas/WebExternalClicksTableQuery"
        },
        {
          "$ref": "#/components/schemas/WebGoalsQuery"
        },
        {
          "$ref": "#/components/schemas/WebVitalsQuery"
        },
        {
          "$ref": "#/components/schemas/WebVitalsPathBreakdownQuery"
        },
        {
          "$ref": "#/components/schemas/SessionAttributionExplorerQuery"
        },
        {
          "$ref": "#/components/schemas/SessionsQuery"
        },
        {
          "$ref": "#/components/schemas/RevenueAnalyticsGrossRevenueQuery"
        },
        {
          "$ref": "#/components/schemas/RevenueAnalyticsMetricsQuery"
        },
        {
          "$ref": "#/components/schemas/RevenueAnalyticsMRRQuery"
        },
        {
          "$ref": "#/components/schemas/RevenueAnalyticsOverviewQuery"
        },
        {
          "$ref": "#/components/schemas/RevenueAnalyticsTopCustomersQuery"
        },
        {
          "$ref": "#/components/schemas/RevenueExampleEventsQuery"
        },
        {
          "$ref": "#/components/schemas/RevenueExampleDataWarehouseTablesQuery"
        },
        {
          "$ref": "#/components/schemas/MarketingAnalyticsTableQuery"
        },
        {
          "$ref": "#/components/schemas/MarketingAnalyticsAggregatedQuery"
        },
        {
          "$ref": "#/components/schemas/NonIntegratedConversionsTableQuery"
        },
        {
          "$ref": "#/components/schemas/ErrorTrackingQuery"
        },
        {
          "$ref": "#/components/schemas/ErrorTrackingIssueCorrelationQuery"
        },
        {
          "$ref": "#/components/schemas/ExperimentFunnelsQuery"
        },
        {
          "$ref": "#/components/schemas/ExperimentTrendsQuery"
        },
        {
          "$ref": "#/components/schemas/TracesQuery"
        },
        {
          "$ref": "#/components/schemas/TraceQuery"
        },
        {
          "$ref": "#/components/schemas/EndpointsUsageTableQuery"
        }
      ],
      "description": "Source of the events",
      "title": "Source"
    },
    "tags": {
      "default": null,
      "allOf": [
        {
          "$ref": "#/components/schemas/QueryLogTags"
        }
      ],
      "nullable": true
    },
    "version": {
      "default": null,
      "description": "version of the node, used for schema migrations",
      "title": "Version",
      "type": "number",
      "nullable": true
    }
  },
  "required": [
    "source"
  ],
  "type": "object"
}