{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/peaka/main/json-schema/peaka-table-schema.json",
  "title": "Table",
  "description": "Represents a table in a schema.",
  "x-generated": "2026-10-21",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_original/peaka-api-openapi.json#/components/schemas/Table",
  "type": "object",
  "properties": {
    "catalogId": {
      "type": "string",
      "description": "The ID of the catalog that the table belongs to."
    },
    "catalogName": {
      "type": "string",
      "description": "The name of the catalog that the table belongs to."
    },
    "schemaName": {
      "type": "string",
      "description": "The name of the schema that the table belongs to."
    },
    "tableName": {
      "type": "string",
      "description": "The name of the table."
    },
    "supportedCacheTypes": {
      "type": "array",
      "description": "The cache types supported by the table: FULL_REFRESH and/or INCREMENTAL.\n An empty list means the table is not cacheable.\n The field is absent when capability information could not be resolved.",
      "items": {
        "type": "string"
      }
    },
    "isCacheable": {
      "type": "boolean",
      "description": "Indicates whether the table is cacheable or not."
    },
    "isDynamicTable": {
      "type": "boolean",
      "description": "Indicates whether the table has required query parameter columns or not.\n A query parameter column is prefixed with \"_q_\" e.g. \"_q_date\".\n These columns are used to filter the data in the table."
    },
    "isCached": {
      "type": "boolean",
      "description": "Indicates whether the table is cached or not.\n It is not the status of caching.\n <br>\n e.g. when a table is cached, you are no longer accessing the original data source.\n But the data may not be complete since an ongoing cache refresh is in progress."
    }
  }
}