{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/collate/json-schema/collate-column-schema.json",
  "title": "Column",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/collate-columns-api-openapi.yml#/components/schemas/Column",
  "required": [
    "dataType",
    "name"
  ],
  "type": "object",
  "properties": {
    "name": {
      "maxLength": 2147483647,
      "minLength": 1,
      "pattern": "^((?!::)[^>\"\\x00-\\x1f])*$",
      "type": "string"
    },
    "displayName": {
      "type": "string"
    },
    "dataType": {
      "type": "string",
      "enum": [
        "NUMBER",
        "TINYINT",
        "SMALLINT",
        "INT",
        "BIGINT",
        "BYTEINT",
        "BYTES",
        "FLOAT",
        "DOUBLE",
        "DECIMAL",
        "NUMERIC",
        "TIMESTAMP",
        "TIMESTAMPZ",
        "TIME",
        "DATE",
        "DATETIME",
        "INTERVAL",
        "STRING",
        "MEDIUMTEXT",
        "TEXT",
        "CHAR",
        "LONG",
        "VARCHAR",
        "BOOLEAN",
        "BINARY",
        "VARBINARY",
        "ARRAY",
        "BLOB",
        "LONGBLOB",
        "MEDIUMBLOB",
        "MAP",
        "STRUCT",
        "UNION",
        "SET",
        "GEOGRAPHY",
        "ENUM",
        "JSON",
        "UUID",
        "VARIANT",
        "GEOMETRY",
        "BYTEA",
        "AGGREGATEFUNCTION",
        "ERROR",
        "FIXED",
        "RECORD",
        "NULL",
        "SUPER",
        "HLLSKETCH",
        "PG_LSN",
        "PG_SNAPSHOT",
        "TSQUERY",
        "TXID_SNAPSHOT",
        "XML",
        "MACADDR",
        "TSVECTOR",
        "UNKNOWN",
        "CIDR",
        "INET",
        "CLOB",
        "ROWID",
        "LOWCARDINALITY",
        "YEAR",
        "POINT",
        "POLYGON",
        "TUPLE",
        "SPATIAL",
        "TABLE",
        "NTEXT",
        "IMAGE",
        "IPV4",
        "IPV6",
        "DATETIMERANGE",
        "HLL",
        "LARGEINT",
        "QUANTILE_STATE",
        "AGG_STATE",
        "BITMAP",
        "UINT",
        "BIT",
        "MONEY",
        "MEASURE HIDDEN",
        "MEASURE VISIBLE",
        "MEASURE",
        "KPI",
        "HEIRARCHY",
        "HIERARCHYID"
      ]
    },
    "arrayDataType": {
      "type": "string",
      "enum": [
        "NUMBER",
        "TINYINT",
        "SMALLINT",
        "INT",
        "BIGINT",
        "BYTEINT",
        "BYTES",
        "FLOAT",
        "DOUBLE",
        "DECIMAL",
        "NUMERIC",
        "TIMESTAMP",
        "TIMESTAMPZ",
        "TIME",
        "DATE",
        "DATETIME",
        "INTERVAL",
        "STRING",
        "MEDIUMTEXT",
        "TEXT",
        "CHAR",
        "LONG",
        "VARCHAR",
        "BOOLEAN",
        "BINARY",
        "VARBINARY",
        "ARRAY",
        "BLOB",
        "LONGBLOB",
        "MEDIUMBLOB",
        "MAP",
        "STRUCT",
        "UNION",
        "SET",
        "GEOGRAPHY",
        "ENUM",
        "JSON",
        "UUID",
        "VARIANT",
        "GEOMETRY",
        "BYTEA",
        "AGGREGATEFUNCTION",
        "ERROR",
        "FIXED",
        "RECORD",
        "NULL",
        "SUPER",
        "HLLSKETCH",
        "PG_LSN",
        "PG_SNAPSHOT",
        "TSQUERY",
        "TXID_SNAPSHOT",
        "XML",
        "MACADDR",
        "TSVECTOR",
        "UNKNOWN",
        "CIDR",
        "INET",
        "CLOB",
        "ROWID",
        "LOWCARDINALITY",
        "YEAR",
        "POINT",
        "POLYGON",
        "TUPLE",
        "SPATIAL",
        "TABLE",
        "NTEXT",
        "IMAGE",
        "IPV4",
        "IPV6",
        "DATETIMERANGE",
        "HLL",
        "LARGEINT",
        "QUANTILE_STATE",
        "AGG_STATE",
        "BITMAP",
        "UINT",
        "BIT",
        "MONEY",
        "MEASURE HIDDEN",
        "MEASURE VISIBLE",
        "MEASURE",
        "KPI",
        "HEIRARCHY",
        "HIERARCHYID"
      ]
    },
    "dataLength": {
      "type": "integer",
      "format": "int32"
    },
    "precision": {
      "type": "integer",
      "format": "int32"
    },
    "scale": {
      "type": "integer",
      "format": "int32"
    },
    "dataTypeDisplay": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "fullyQualifiedName": {
      "maxLength": 3072,
      "minLength": 1,
      "type": "string"
    },
    "tags": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/TagLabel"
      }
    },
    "constraint": {
      "type": "string",
      "enum": [
        "NULL",
        "NOT_NULL",
        "UNIQUE",
        "PRIMARY_KEY"
      ]
    },
    "ordinalPosition": {
      "type": "integer",
      "format": "int32"
    },
    "jsonSchema": {
      "type": "string"
    },
    "children": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Column"
      }
    },
    "profile": {
      "$ref": "#/$defs/ColumnProfile"
    },
    "customMetrics": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/CustomMetric"
      }
    },
    "extension": {
      "type": "object"
    }
  },
  "$defs": {
    "CardinalityDistribution": {
      "type": "object",
      "properties": {
        "categories": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "counts": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int32"
          }
        },
        "percentages": {
          "type": "array",
          "items": {
            "type": "number",
            "format": "double"
          }
        },
        "allValuesUnique": {
          "type": "boolean"
        }
      }
    },
    "Column": {
      "required": [
        "dataType",
        "name"
      ],
      "type": "object",
      "properties": {
        "name": {
          "maxLength": 2147483647,
          "minLength": 1,
          "pattern": "^((?!::)[^>\"\\x00-\\x1f])*$",
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "dataType": {
          "type": "string",
          "enum": [
            "NUMBER",
            "TINYINT",
            "SMALLINT",
            "INT",
            "BIGINT",
            "BYTEINT",
            "BYTES",
            "FLOAT",
            "DOUBLE",
            "DECIMAL",
            "NUMERIC",
            "TIMESTAMP",
            "TIMESTAMPZ",
            "TIME",
            "DATE",
            "DATETIME",
            "INTERVAL",
            "STRING",
            "MEDIUMTEXT",
            "TEXT",
            "CHAR",
            "LONG",
            "VARCHAR",
            "BOOLEAN",
            "BINARY",
            "VARBINARY",
            "ARRAY",
            "BLOB",
            "LONGBLOB",
            "MEDIUMBLOB",
            "MAP",
            "STRUCT",
            "UNION",
            "SET",
            "GEOGRAPHY",
            "ENUM",
            "JSON",
            "UUID",
            "VARIANT",
            "GEOMETRY",
            "BYTEA",
            "AGGREGATEFUNCTION",
            "ERROR",
            "FIXED",
            "RECORD",
            "NULL",
            "SUPER",
            "HLLSKETCH",
            "PG_LSN",
            "PG_SNAPSHOT",
            "TSQUERY",
            "TXID_SNAPSHOT",
            "XML",
            "MACADDR",
            "TSVECTOR",
            "UNKNOWN",
            "CIDR",
            "INET",
            "CLOB",
            "ROWID",
            "LOWCARDINALITY",
            "YEAR",
            "POINT",
            "POLYGON",
            "TUPLE",
            "SPATIAL",
            "TABLE",
            "NTEXT",
            "IMAGE",
            "IPV4",
            "IPV6",
            "DATETIMERANGE",
            "HLL",
            "LARGEINT",
            "QUANTILE_STATE",
            "AGG_STATE",
            "BITMAP",
            "UINT",
            "BIT",
            "MONEY",
            "MEASURE HIDDEN",
            "MEASURE VISIBLE",
            "MEASURE",
            "KPI",
            "HEIRARCHY",
            "HIERARCHYID"
          ]
        },
        "arrayDataType": {
          "type": "string",
          "enum": [
            "NUMBER",
            "TINYINT",
            "SMALLINT",
            "INT",
            "BIGINT",
            "BYTEINT",
            "BYTES",
            "FLOAT",
            "DOUBLE",
            "DECIMAL",
            "NUMERIC",
            "TIMESTAMP",
            "TIMESTAMPZ",
            "TIME",
            "DATE",
            "DATETIME",
            "INTERVAL",
            "STRING",
            "MEDIUMTEXT",
            "TEXT",
            "CHAR",
            "LONG",
            "VARCHAR",
            "BOOLEAN",
            "BINARY",
            "VARBINARY",
            "ARRAY",
            "BLOB",
            "LONGBLOB",
            "MEDIUMBLOB",
            "MAP",
            "STRUCT",
            "UNION",
            "SET",
            "GEOGRAPHY",
            "ENUM",
            "JSON",
            "UUID",
            "VARIANT",
            "GEOMETRY",
            "BYTEA",
            "AGGREGATEFUNCTION",
            "ERROR",
            "FIXED",
            "RECORD",
            "NULL",
            "SUPER",
            "HLLSKETCH",
            "PG_LSN",
            "PG_SNAPSHOT",
            "TSQUERY",
            "TXID_SNAPSHOT",
            "XML",
            "MACADDR",
            "TSVECTOR",
            "UNKNOWN",
            "CIDR",
            "INET",
            "CLOB",
            "ROWID",
            "LOWCARDINALITY",
            "YEAR",
            "POINT",
            "POLYGON",
            "TUPLE",
            "SPATIAL",
            "TABLE",
            "NTEXT",
            "IMAGE",
            "IPV4",
            "IPV6",
            "DATETIMERANGE",
            "HLL",
            "LARGEINT",
            "QUANTILE_STATE",
            "AGG_STATE",
            "BITMAP",
            "UINT",
            "BIT",
            "MONEY",
            "MEASURE HIDDEN",
            "MEASURE VISIBLE",
            "MEASURE",
            "KPI",
            "HEIRARCHY",
            "HIERARCHYID"
          ]
        },
        "dataLength": {
          "type": "integer",
          "format": "int32"
        },
        "precision": {
          "type": "integer",
          "format": "int32"
        },
        "scale": {
          "type": "integer",
          "format": "int32"
        },
        "dataTypeDisplay": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "fullyQualifiedName": {
          "maxLength": 3072,
          "minLength": 1,
          "type": "string"
        },
        "tags": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/TagLabel"
          }
        },
        "constraint": {
          "type": "string",
          "enum": [
            "NULL",
            "NOT_NULL",
            "UNIQUE",
            "PRIMARY_KEY"
          ]
        },
        "ordinalPosition": {
          "type": "integer",
          "format": "int32"
        },
        "jsonSchema": {
          "type": "string"
        },
        "children": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Column"
          }
        },
        "profile": {
          "$ref": "#/$defs/ColumnProfile"
        },
        "customMetrics": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/CustomMetric"
          }
        },
        "extension": {
          "type": "object"
        }
      }
    },
    "ColumnProfile": {
      "required": [
        "name",
        "timestamp"
      ],
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "timestamp": {
          "type": "integer",
          "format": "int64"
        },
        "valuesCount": {
          "type": "number",
          "format": "double"
        },
        "valuesPercentage": {
          "type": "number",
          "format": "double"
        },
        "validCount": {
          "type": "number",
          "format": "double"
        },
        "duplicateCount": {
          "type": "number",
          "format": "double"
        },
        "nullCount": {
          "type": "number",
          "format": "double"
        },
        "nullProportion": {
          "type": "number",
          "format": "double"
        },
        "missingPercentage": {
          "type": "number",
          "format": "double"
        },
        "missingCount": {
          "type": "number",
          "format": "double"
        },
        "uniqueCount": {
          "type": "number",
          "format": "double"
        },
        "uniqueProportion": {
          "type": "number",
          "format": "double"
        },
        "distinctCount": {
          "type": "number",
          "format": "double"
        },
        "distinctProportion": {
          "type": "number",
          "format": "double"
        },
        "min": {
          "type": "object"
        },
        "max": {
          "type": "object"
        },
        "minLength": {
          "type": "number",
          "format": "double"
        },
        "maxLength": {
          "type": "number",
          "format": "double"
        },
        "mean": {
          "type": "number",
          "format": "double"
        },
        "sum": {
          "type": "number",
          "format": "double"
        },
        "stddev": {
          "type": "number",
          "format": "double"
        },
        "variance": {
          "type": "number",
          "format": "double"
        },
        "median": {
          "type": "number",
          "format": "double"
        },
        "firstQuartile": {
          "type": "number",
          "format": "double"
        },
        "thirdQuartile": {
          "type": "number",
          "format": "double"
        },
        "interQuartileRange": {
          "type": "number",
          "format": "double"
        },
        "nonParametricSkew": {
          "type": "number",
          "format": "double"
        },
        "histogram": {
          "$ref": "#/$defs/Histogram"
        },
        "customMetrics": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/CustomMetricProfile"
          }
        },
        "cardinalityDistribution": {
          "$ref": "#/$defs/CardinalityDistribution"
        }
      }
    },
    "CoverImage": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string"
        },
        "position": {
          "type": "string"
        }
      }
    },
    "CustomMetric": {
      "required": [
        "expression",
        "name"
      ],
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "name": {
          "maxLength": 256,
          "minLength": 1,
          "pattern": "^((?!::)[^>\"\\x00-\\x1f])*$",
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "columnName": {
          "type": "string"
        },
        "expression": {
          "type": "string"
        },
        "owners": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/EntityReference"
          }
        },
        "updatedAt": {
          "type": "integer",
          "format": "int64"
        },
        "updatedBy": {
          "type": "string"
        }
      }
    },
    "CustomMetricProfile": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "value": {
          "type": "number",
          "format": "double"
        }
      }
    },
    "EntityReference": {
      "required": [
        "id",
        "type"
      ],
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "type": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "fullyQualifiedName": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "deleted": {
          "type": "boolean"
        },
        "inherited": {
          "type": "boolean"
        },
        "href": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    "Histogram": {
      "type": "object",
      "properties": {
        "boundaries": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "frequencies": {
          "type": "array",
          "items": {
            "type": "object"
          }
        }
      }
    },
    "PatternMatch": {
      "required": [
        "name",
        "score"
      ],
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "regex": {
          "type": "string"
        },
        "score": {
          "type": "number",
          "format": "double"
        }
      }
    },
    "Style": {
      "type": "object",
      "properties": {
        "color": {
          "type": "string"
        },
        "iconURL": {
          "type": "string"
        },
        "coverImage": {
          "$ref": "#/$defs/CoverImage"
        }
      }
    },
    "TagLabel": {
      "required": [
        "labelType",
        "source",
        "state",
        "tagFQN"
      ],
      "type": "object",
      "properties": {
        "tagFQN": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "style": {
          "$ref": "#/$defs/Style"
        },
        "source": {
          "type": "string",
          "enum": [
            "Classification",
            "Glossary"
          ]
        },
        "labelType": {
          "type": "string",
          "enum": [
            "Manual",
            "Propagated",
            "Automated",
            "Derived",
            "Generated"
          ]
        },
        "state": {
          "type": "string",
          "enum": [
            "Suggested",
            "Confirmed"
          ]
        },
        "href": {
          "type": "string",
          "format": "uri"
        },
        "reason": {
          "type": "string"
        },
        "appliedAt": {
          "type": "string",
          "format": "date-time"
        },
        "appliedBy": {
          "type": "string"
        },
        "metadata": {
          "$ref": "#/$defs/TagLabelMetadata"
        }
      }
    },
    "TagLabelMetadata": {
      "type": "object",
      "properties": {
        "recognizer": {
          "$ref": "#/$defs/TagLabelRecognizerMetadata"
        },
        "expiryDate": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "TagLabelRecognizerMetadata": {
      "required": [
        "recognizerId",
        "recognizerName",
        "score"
      ],
      "type": "object",
      "properties": {
        "recognizerId": {
          "type": "string",
          "format": "uuid"
        },
        "recognizerName": {
          "type": "string"
        },
        "score": {
          "type": "number",
          "format": "double"
        },
        "target": {
          "type": "string",
          "enum": [
            "content",
            "column_name"
          ]
        },
        "patterns": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/PatternMatch"
          }
        }
      }
    }
  }
}