extend type Query { isAnalyticsEnabled: Boolean! getAnalyticsCharts: [AnalyticsChartGroup!]! getHighlights: [Highlight!]! } union AnalyticsChart = TimeSeriesChart | BarChart | TableChart type AnalyticsChartGroup { title: String! charts: [AnalyticsChart!]! } enum DateInterval { SECOND MINUTE HOUR DAY WEEK MONTH YEAR } type DateRange { start: String! end: String! } type NumericDataPoint { x: String! y: Int! } type NamedLine { name: String! data: [NumericDataPoint!]! } type TimeSeriesChart { title: String! lines: [NamedLine!]! dateRange: DateRange! interval: DateInterval! } type BarSegment { label: String! value: Int! } type NamedBar { name: String! segments: [BarSegment!]! } type BarChart { title: String! bars: [NamedBar!]! } type Row { # All values are expected to be strings. values: [String!]! } type TableChart { title: String! columns: [String!]! rows: [Row!]! } type Highlight { value: Int! title: String! body: String! }