{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/collate/json-schema/collate-chart-list-schema.json",
  "title": "ChartList",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/collate-charts-api-openapi.yml#/components/schemas/ChartList",
  "required": [
    "data"
  ],
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Chart"
      }
    },
    "paging": {
      "$ref": "#/$defs/Paging"
    },
    "errors": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/EntityError"
      }
    },
    "warningsCount": {
      "type": "integer",
      "format": "int32"
    },
    "warnings": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/EntityError"
      }
    }
  },
  "$defs": {
    "AccessDetails": {
      "required": [
        "timestamp"
      ],
      "type": "object",
      "properties": {
        "timestamp": {
          "type": "integer",
          "format": "int64"
        },
        "accessedBy": {
          "$ref": "#/$defs/EntityReference"
        },
        "accessedByAProcess": {
          "type": "string"
        }
      }
    },
    "AssetCertification": {
      "required": [
        "appliedDate",
        "expiryDate",
        "tagLabel"
      ],
      "type": "object",
      "properties": {
        "tagLabel": {
          "$ref": "#/$defs/TagLabel"
        },
        "appliedDate": {
          "type": "integer",
          "format": "int64"
        },
        "expiryDate": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "ChangeDescription": {
      "type": "object",
      "properties": {
        "fieldsAdded": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/FieldChange"
          }
        },
        "fieldsUpdated": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/FieldChange"
          }
        },
        "fieldsDeleted": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/FieldChange"
          }
        },
        "previousVersion": {
          "type": "number",
          "format": "double"
        },
        "changeSummary": {
          "$ref": "#/$defs/ChangeSummaryMap"
        }
      }
    },
    "ChangeSummaryMap": {
      "type": "object"
    },
    "Chart": {
      "required": [
        "id",
        "name",
        "service"
      ],
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "name": {
          "maxLength": 256,
          "minLength": 1,
          "pattern": "^((?!::)[^>\"\\x00-\\x1f])*$",
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "fullyQualifiedName": {
          "maxLength": 3072,
          "minLength": 1,
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "version": {
          "type": "number",
          "format": "double"
        },
        "updatedAt": {
          "type": "integer",
          "format": "int64"
        },
        "updatedBy": {
          "type": "string"
        },
        "impersonatedBy": {
          "type": "string"
        },
        "chartType": {
          "type": "string",
          "enum": [
            "Line",
            "Table",
            "Bar",
            "Area",
            "Pie",
            "Histogram",
            "Scatter",
            "Text",
            "BoxPlot",
            "SanKey",
            "Gauge",
            "Map",
            "Graph",
            "Heatmap",
            "Timeline",
            "Other"
          ]
        },
        "sourceUrl": {
          "type": "string"
        },
        "href": {
          "type": "string",
          "format": "uri"
        },
        "owners": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/EntityReference"
          }
        },
        "followers": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/EntityReference"
          }
        },
        "tags": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/TagLabel"
          }
        },
        "service": {
          "$ref": "#/$defs/EntityReference"
        },
        "serviceType": {
          "type": "string",
          "enum": [
            "Superset",
            "Looker",
            "Tableau",
            "Redash",
            "Metabase",
            "PowerBI",
            "PowerBIReportServer",
            "Mode",
            "CustomDashboard",
            "DomoDashboard",
            "QuickSight",
            "QlikSense",
            "Lightdash",
            "MicroStrategy",
            "QlikCloud",
            "Sigma",
            "ThoughtSpot",
            "Grafana",
            "Hex",
            "Ssrs",
            "SapS4Hana",
            "Omni"
          ]
        },
        "usageSummary": {
          "$ref": "#/$defs/UsageDetails"
        },
        "changeDescription": {
          "$ref": "#/$defs/ChangeDescription"
        },
        "incrementalChangeDescription": {
          "$ref": "#/$defs/ChangeDescription"
        },
        "deleted": {
          "type": "boolean"
        },
        "domains": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/EntityReference"
          }
        },
        "dataProducts": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/EntityReference"
          }
        },
        "dataContract": {
          "$ref": "#/$defs/EntityReference"
        },
        "votes": {
          "$ref": "#/$defs/Votes"
        },
        "lifeCycle": {
          "$ref": "#/$defs/LifeCycle"
        },
        "certification": {
          "$ref": "#/$defs/AssetCertification"
        },
        "sourceHash": {
          "maxLength": 32,
          "minLength": 1,
          "type": "string"
        },
        "extension": {
          "type": "object"
        },
        "dashboards": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/EntityReference"
          }
        },
        "entityStatus": {
          "type": "string",
          "enum": [
            "Draft",
            "In Review",
            "Approved",
            "Archived",
            "Deprecated",
            "Rejected",
            "Unprocessed"
          ]
        },
        "reviewers": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/EntityReference"
          }
        },
        "experts": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/EntityReference"
          }
        },
        "provider": {
          "type": "string",
          "enum": [
            "system",
            "user",
            "automation"
          ]
        },
        "children": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/EntityReference"
          }
        },
        "style": {
          "$ref": "#/$defs/Style"
        }
      }
    },
    "CoverImage": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string"
        },
        "position": {
          "type": "string"
        }
      }
    },
    "EntityError": {
      "type": "object",
      "properties": {
        "message": {
          "type": "string"
        },
        "entity": {
          "type": "object"
        }
      }
    },
    "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"
        }
      }
    },
    "FieldChange": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "oldValue": {
          "type": "object"
        },
        "newValue": {
          "type": "object"
        }
      }
    },
    "LifeCycle": {
      "type": "object",
      "properties": {
        "created": {
          "$ref": "#/$defs/AccessDetails"
        },
        "updated": {
          "$ref": "#/$defs/AccessDetails"
        },
        "accessed": {
          "$ref": "#/$defs/AccessDetails"
        }
      }
    },
    "Paging": {
      "required": [
        "total"
      ],
      "type": "object",
      "properties": {
        "before": {
          "type": "string"
        },
        "after": {
          "type": "string"
        },
        "offset": {
          "type": "integer",
          "format": "int32"
        },
        "limit": {
          "type": "integer",
          "format": "int32"
        },
        "total": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "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"
          }
        }
      }
    },
    "UsageDetails": {
      "required": [
        "dailyStats",
        "date"
      ],
      "type": "object",
      "properties": {
        "dailyStats": {
          "$ref": "#/$defs/UsageStats"
        },
        "weeklyStats": {
          "$ref": "#/$defs/UsageStats"
        },
        "monthlyStats": {
          "$ref": "#/$defs/UsageStats"
        },
        "date": {
          "type": "string"
        }
      }
    },
    "UsageStats": {
      "required": [
        "count"
      ],
      "type": "object",
      "properties": {
        "count": {
          "minimum": 0,
          "type": "integer",
          "format": "int32"
        },
        "percentileRank": {
          "type": "number",
          "format": "double"
        }
      }
    },
    "Votes": {
      "type": "object",
      "properties": {
        "upVotes": {
          "type": "integer",
          "format": "int32"
        },
        "downVotes": {
          "type": "integer",
          "format": "int32"
        },
        "upVoters": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/EntityReference"
          }
        },
        "downVoters": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/EntityReference"
          }
        }
      }
    }
  }
}