diff --git a/pkg/kindsys/report.go b/pkg/kindsys/report.go index a554f685674..cd565cfa0d2 100644 --- a/pkg/kindsys/report.go +++ b/pkg/kindsys/report.go @@ -10,6 +10,8 @@ import ( "encoding/json" "fmt" "os" + "path" + "reflect" "sort" "strings" @@ -18,9 +20,26 @@ import ( "github.com/grafana/grafana/pkg/plugins/pfs/corelist" "github.com/grafana/grafana/pkg/plugins/plugindef" "github.com/grafana/grafana/pkg/registry/corekind" + "github.com/grafana/thema" ) -const reportFileName = "report.json" +const ( + // Program's output + reportFileName = "report.json" + + // External references + repoBaseURL = "https://github.com/grafana/grafana/tree/main" + docsBaseURL = "https://grafana.com/docs/grafana/next/developers/kinds" + + // Local references + coreTSPath = "packages/grafana-schema/src/raw/%s/%s/%s_types.gen.ts" + coreGoPath = "pkg/kinds/%s" + coreCUEPath = "kinds/%s/%s_kind.cue" + + composableTSPath = "public/app/plugins/%s/%s/%s.gen.ts" + composableGoPath = "pkg/tsdb/%s/kinds/%s/types_%s_gen.go" + composableCUEPath = "public/app/plugins/%s/%s/%s.cue" +) func main() { report := buildKindStateReport() @@ -54,17 +73,58 @@ var plannedCoreKinds = []string{ "QueryHistory", } -type KindStateReport struct { - Kinds map[string]kindsys.SomeKindProperties `json:"kinds"` - Dimensions map[string]Dimension `json:"dimensions"` +type KindLinks struct { + Schema string + Go string + Ts string + Docs string } -func (r *KindStateReport) add(k kindsys.SomeKindProperties, category string) { +type Kind struct { + kindsys.SomeKindProperties + Category string + Links KindLinks +} + +// MarshalJSON is overwritten to marshal +// kindsys.SomeKindProperties at root level. +func (k Kind) MarshalJSON() ([]byte, error) { + b, err := json.Marshal(k.SomeKindProperties) + if err != nil { + return nil, err + } + + var m map[string]interface{} + if err = json.Unmarshal(b, &m); err != nil { + return nil, err + } + + m["category"] = k.Category + + m["links"] = map[string]string{} + for _, ref := range []string{"Schema", "Go", "Ts", "Docs"} { + refVal := reflect.ValueOf(k.Links).FieldByName(ref).String() + if len(refVal) > 0 { + m["links"].(map[string]string)[toCamelCase(ref)] = refVal + } else { + m["links"].(map[string]string)[toCamelCase(ref)] = "n/a" + } + } + + return json.Marshal(m) +} + +type KindStateReport struct { + Kinds map[string]Kind `json:"kinds"` + Dimensions map[string]Dimension `json:"dimensions"` +} + +func (r *KindStateReport) add(k Kind) { kName := k.Common().MachineName r.Kinds[kName] = k r.Dimensions["maturity"][k.Common().Maturity.String()].add(kName) - r.Dimensions["category"][category].add(kName) + r.Dimensions["category"][k.Category].add(kName) } type Dimension map[string]*DimensionValue @@ -85,7 +145,7 @@ func (dv *DimensionValue) add(s string) { // the final report. func emptyKindStateReport() *KindStateReport { return &KindStateReport{ - Kinds: make(map[string]kindsys.SomeKindProperties), + Kinds: make(map[string]Kind), Dimensions: map[string]Dimension{ "maturity": { "planned": emptyDimensionValue("planned"), @@ -117,9 +177,14 @@ func buildKindStateReport() *KindStateReport { seen := make(map[string]bool) for _, k := range b.All() { seen[k.Props().Common().Name] = true + k.Lineage() switch k.Props().(type) { case kindsys.CoreProperties: - r.add(k.Props(), "core") + r.add(Kind{ + SomeKindProperties: k.Props(), + Category: "core", + Links: buildCoreLinks(k.Lineage(), k.Decl().Properties), + }) } } @@ -128,25 +193,32 @@ func buildKindStateReport() *KindStateReport { continue } - r.add(kindsys.CoreProperties{ - CommonProperties: kindsys.CommonProperties{ - Name: kn, - PluralName: kn + "s", - MachineName: machinize(kn), - PluralMachineName: machinize(kn) + "s", - Maturity: "planned", + r.add(Kind{ + SomeKindProperties: kindsys.CoreProperties{ + CommonProperties: kindsys.CommonProperties{ + Name: kn, + PluralName: kn + "s", + MachineName: machinize(kn), + PluralMachineName: machinize(kn) + "s", + Maturity: "planned", + }, }, - }, "core") + Category: "core", + }) } all := kindsys.SchemaInterfaces(nil) for _, pp := range corelist.New(nil) { for _, si := range all { if ck, has := pp.ComposableKinds[si.Name()]; has { - r.add(ck.Props(), "composable") + r.add(Kind{ + SomeKindProperties: ck.Props(), + Category: "composable", + Links: buildComposableLinks(pp.Properties, ck.Decl().Properties), + }) } else if may := si.Should(string(pp.Properties.Type)); may { n := plugindef.DerivePascalName(pp.Properties) + si.Name() - props := kindsys.ComposableProperties{ + ck := kindsys.ComposableProperties{ SchemaInterface: si.Name(), CommonProperties: kindsys.CommonProperties{ Name: n, @@ -157,7 +229,10 @@ func buildKindStateReport() *KindStateReport { Maturity: "planned", }, } - r.add(props, "composable") + r.add(Kind{ + SomeKindProperties: ck, + Category: "composable", + }) } } } @@ -171,6 +246,66 @@ func buildKindStateReport() *KindStateReport { return r } +func buildDocsRef(category string, props kindsys.CommonProperties) string { + return path.Join(docsBaseURL, category, props.MachineName, "schema-reference") +} + +func buildCoreLinks(lin thema.Lineage, cp kindsys.CoreProperties) KindLinks { + const category = "core" + vpath := fmt.Sprintf("v%v", lin.Latest().Version()[0]) + if cp.Maturity.Less(kindsys.MaturityStable) { + vpath = "x" + } + + return KindLinks{ + Schema: path.Join(repoBaseURL, fmt.Sprintf(coreCUEPath, cp.MachineName, cp.MachineName)), + Go: path.Join(repoBaseURL, fmt.Sprintf(coreGoPath, cp.MachineName)), + Ts: path.Join(repoBaseURL, fmt.Sprintf(coreTSPath, cp.MachineName, vpath, cp.MachineName)), + Docs: path.Join(docsBaseURL, category, cp.MachineName, "schema-reference"), + } +} + +// used to map names for those plugins that aren't following +// naming conventions, like 'annonlist' which comes from "Annotations list". +var irregularPluginNames = map[string]string{ + // Panel + "alertgroups": "alertGroups", + "annotationslist": "annolist", + "dashboardlist": "dashlist", + "nodegraph": "nodeGraph", + "statetimeline": "state-timeline", + "statushistory": "status-history", + "tableold": "table-old", + // Datasource + "googlecloudmonitoring": "cloud-monitoring", + "azuremonitor": "grafana-azure-monitor-datasource", + "microsoftsqlserver": "mssql", + "postgresql": "postgres", + "testdatadb": "testdata", +} + +func buildComposableLinks(pp plugindef.PluginDef, cp kindsys.ComposableProperties) KindLinks { + const category = "composable" + schemaInterface := strings.ToLower(cp.SchemaInterface) + + pName := strings.Replace(cp.MachineName, schemaInterface, "", 1) + if irr, ok := irregularPluginNames[pName]; ok { + pName = irr + } + + var goLink string + if pp.Backend != nil && *pp.Backend { + goLink = path.Join(repoBaseURL, fmt.Sprintf(composableGoPath, pName, schemaInterface, schemaInterface)) + } + + return KindLinks{ + Schema: path.Join(repoBaseURL, fmt.Sprintf(composableCUEPath, string(pp.Type), pName, schemaInterface)), + Go: goLink, + Ts: path.Join(repoBaseURL, fmt.Sprintf(composableTSPath, string(pp.Type), pName, schemaInterface)), + Docs: path.Join(docsBaseURL, category, cp.MachineName, "schema-reference"), + } +} + func machinize(s string) string { return strings.Map(func(r rune) rune { switch { @@ -190,6 +325,10 @@ func machinize(s string) string { }, s) } +func toCamelCase(s string) string { + return strings.ToLower(string(s[0])) + s[1:] +} + type reportJenny struct{} func (reportJenny) JennyName() string { diff --git a/pkg/kindsys/report.json b/pkg/kindsys/report.json index ac2f97db3a5..b7d2378d7dd 100644 --- a/pkg/kindsys/report.json +++ b/pkg/kindsys/report.json @@ -1,954 +1,1472 @@ { "kinds": { "alertgroupspanelcfg": { - "name": "AlertGroupsPanelCfg", - "pluralName": "AlertGroupsPanelCfgs", - "machineName": "alertgroupspanelcfg", - "pluralMachineName": "alertgroupspanelcfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "alertgroupspanelcfg", + "maturity": "planned", + "name": "AlertGroupsPanelCfg", + "pluralMachineName": "alertgroupspanelcfgs", + "pluralName": "AlertGroupsPanelCfgs", "schemaInterface": "PanelCfg" }, "alertlistpanelcfg": { - "name": "AlertListPanelCfg", - "pluralName": "AlertListPanelCfgs", - "machineName": "alertlistpanelcfg", - "pluralMachineName": "alertlistpanelcfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "alertlistpanelcfg", + "maturity": "planned", + "name": "AlertListPanelCfg", + "pluralMachineName": "alertlistpanelcfgs", + "pluralName": "AlertListPanelCfgs", "schemaInterface": "PanelCfg" }, "alertmanagerdataquery": { - "name": "AlertmanagerDataQuery", - "pluralName": "AlertmanagerDataQuerys", - "machineName": "alertmanagerdataquery", - "pluralMachineName": "alertmanagerdataquerys", - "lineageIsGroup": false, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "alertmanagerdataquery", + "maturity": "planned", + "name": "AlertmanagerDataQuery", + "pluralMachineName": "alertmanagerdataquerys", + "pluralName": "AlertmanagerDataQuerys", "schemaInterface": "DataQuery" }, "alertmanagerdatasourcecfg": { - "name": "AlertmanagerDataSourceCfg", - "pluralName": "AlertmanagerDataSourceCfgs", - "machineName": "alertmanagerdatasourcecfg", - "pluralMachineName": "alertmanagerdatasourcecfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "alertmanagerdatasourcecfg", + "maturity": "planned", + "name": "AlertmanagerDataSourceCfg", + "pluralMachineName": "alertmanagerdatasourcecfgs", + "pluralName": "AlertmanagerDataSourceCfgs", "schemaInterface": "DataSourceCfg" }, "annotationslistpanelcfg": { - "name": "AnnotationsListPanelCfg", - "pluralName": "AnnotationsListPanelCfgs", - "machineName": "annotationslistpanelcfg", - "pluralMachineName": "annotationslistpanelcfgs", - "lineageIsGroup": true, - "maturity": "experimental", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "https:/grafana.com/docs/grafana/next/developers/kinds/composable/annotationslistpanelcfg/schema-reference", + "go": "n/a", + "schema": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/annolist/panelcfg.cue", + "ts": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/annolist/panelcfg.gen.ts" + }, + "machineName": "annotationslistpanelcfg", + "maturity": "experimental", + "name": "AnnotationsListPanelCfg", + "pluralMachineName": "annotationslistpanelcfgs", + "pluralName": "AnnotationsListPanelCfgs", "schemaInterface": "PanelCfg" }, "apikey": { - "name": "APIKey", - "pluralName": "APIKeys", - "machineName": "apikey", - "pluralMachineName": "apikeys", - "lineageIsGroup": false, - "maturity": "planned", - "currentVersion": [ - 0, - 0 - ] - }, - "azuremonitordataquery": { - "name": "AzureMonitorDataQuery", - "pluralName": "AzureMonitorDataQuerys", - "machineName": "azuremonitordataquery", - "pluralMachineName": "azuremonitordataquerys", - "lineageIsGroup": false, - "maturity": "planned", + "category": "core", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "apikey", + "maturity": "planned", + "name": "APIKey", + "pluralMachineName": "apikeys", + "pluralName": "APIKeys" + }, + "azuremonitordataquery": { + "category": "composable", + "currentVersion": [ + 0, + 0 + ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "azuremonitordataquery", + "maturity": "planned", + "name": "AzureMonitorDataQuery", + "pluralMachineName": "azuremonitordataquerys", + "pluralName": "AzureMonitorDataQuerys", "schemaInterface": "DataQuery" }, "azuremonitordatasourcecfg": { - "name": "AzureMonitorDataSourceCfg", - "pluralName": "AzureMonitorDataSourceCfgs", - "machineName": "azuremonitordatasourcecfg", - "pluralMachineName": "azuremonitordatasourcecfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "azuremonitordatasourcecfg", + "maturity": "planned", + "name": "AzureMonitorDataSourceCfg", + "pluralMachineName": "azuremonitordatasourcecfgs", + "pluralName": "AzureMonitorDataSourceCfgs", "schemaInterface": "DataSourceCfg" }, "barchartpanelcfg": { - "name": "BarChartPanelCfg", - "pluralName": "BarChartPanelCfgs", - "machineName": "barchartpanelcfg", - "pluralMachineName": "barchartpanelcfgs", - "lineageIsGroup": true, - "maturity": "experimental", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "https:/grafana.com/docs/grafana/next/developers/kinds/composable/barchartpanelcfg/schema-reference", + "go": "n/a", + "schema": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/barchart/panelcfg.cue", + "ts": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/barchart/panelcfg.gen.ts" + }, + "machineName": "barchartpanelcfg", + "maturity": "experimental", + "name": "BarChartPanelCfg", + "pluralMachineName": "barchartpanelcfgs", + "pluralName": "BarChartPanelCfgs", "schemaInterface": "PanelCfg" }, "bargaugepanelcfg": { - "name": "BarGaugePanelCfg", - "pluralName": "BarGaugePanelCfgs", - "machineName": "bargaugepanelcfg", - "pluralMachineName": "bargaugepanelcfgs", - "lineageIsGroup": true, - "maturity": "experimental", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "https:/grafana.com/docs/grafana/next/developers/kinds/composable/bargaugepanelcfg/schema-reference", + "go": "n/a", + "schema": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/bargauge/panelcfg.cue", + "ts": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/bargauge/panelcfg.gen.ts" + }, + "machineName": "bargaugepanelcfg", + "maturity": "experimental", + "name": "BarGaugePanelCfg", + "pluralMachineName": "bargaugepanelcfgs", + "pluralName": "BarGaugePanelCfgs", "schemaInterface": "PanelCfg" }, "cloudwatchdataquery": { - "name": "CloudWatchDataQuery", - "pluralName": "CloudWatchDataQuerys", - "machineName": "cloudwatchdataquery", - "pluralMachineName": "cloudwatchdataquerys", - "lineageIsGroup": false, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "cloudwatchdataquery", + "maturity": "planned", + "name": "CloudWatchDataQuery", + "pluralMachineName": "cloudwatchdataquerys", + "pluralName": "CloudWatchDataQuerys", "schemaInterface": "DataQuery" }, "cloudwatchdatasourcecfg": { - "name": "CloudWatchDataSourceCfg", - "pluralName": "CloudWatchDataSourceCfgs", - "machineName": "cloudwatchdatasourcecfg", - "pluralMachineName": "cloudwatchdatasourcecfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "cloudwatchdatasourcecfg", + "maturity": "planned", + "name": "CloudWatchDataSourceCfg", + "pluralMachineName": "cloudwatchdatasourcecfgs", + "pluralName": "CloudWatchDataSourceCfgs", "schemaInterface": "DataSourceCfg" }, "dashboard": { - "name": "Dashboard", - "pluralName": "Dashboards", - "machineName": "dashboard", - "pluralMachineName": "dashboards", - "lineageIsGroup": false, - "maturity": "experimental", - "currentVersion": [ - 0, - 0 - ] - }, - "dashboarddataquery": { - "name": "DashboardDataQuery", - "pluralName": "DashboardDataQuerys", - "machineName": "dashboarddataquery", - "pluralMachineName": "dashboarddataquerys", - "lineageIsGroup": false, - "maturity": "planned", + "category": "core", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "https:/grafana.com/docs/grafana/next/developers/kinds/core/dashboard/schema-reference", + "go": "https:/github.com/grafana/grafana/tree/main/pkg/kinds/dashboard", + "schema": "https:/github.com/grafana/grafana/tree/main/kinds/dashboard/dashboard_kind.cue", + "ts": "https:/github.com/grafana/grafana/tree/main/packages/grafana-schema/src/raw/dashboard/x/dashboard_types.gen.ts" + }, + "machineName": "dashboard", + "maturity": "experimental", + "name": "Dashboard", + "pluralMachineName": "dashboards", + "pluralName": "Dashboards" + }, + "dashboarddataquery": { + "category": "composable", + "currentVersion": [ + 0, + 0 + ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "dashboarddataquery", + "maturity": "planned", + "name": "DashboardDataQuery", + "pluralMachineName": "dashboarddataquerys", + "pluralName": "DashboardDataQuerys", "schemaInterface": "DataQuery" }, "dashboarddatasourcecfg": { - "name": "DashboardDataSourceCfg", - "pluralName": "DashboardDataSourceCfgs", - "machineName": "dashboarddatasourcecfg", - "pluralMachineName": "dashboarddatasourcecfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "dashboarddatasourcecfg", + "maturity": "planned", + "name": "DashboardDataSourceCfg", + "pluralMachineName": "dashboarddatasourcecfgs", + "pluralName": "DashboardDataSourceCfgs", "schemaInterface": "DataSourceCfg" }, "dashboardlistpanelcfg": { - "name": "DashboardListPanelCfg", - "pluralName": "DashboardListPanelCfgs", - "machineName": "dashboardlistpanelcfg", - "pluralMachineName": "dashboardlistpanelcfgs", - "lineageIsGroup": true, - "maturity": "experimental", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "https:/grafana.com/docs/grafana/next/developers/kinds/composable/dashboardlistpanelcfg/schema-reference", + "go": "n/a", + "schema": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/dashlist/panelcfg.cue", + "ts": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/dashlist/panelcfg.gen.ts" + }, + "machineName": "dashboardlistpanelcfg", + "maturity": "experimental", + "name": "DashboardListPanelCfg", + "pluralMachineName": "dashboardlistpanelcfgs", + "pluralName": "DashboardListPanelCfgs", "schemaInterface": "PanelCfg" }, "datasource": { - "name": "DataSource", - "pluralName": "DataSources", - "machineName": "datasource", - "pluralMachineName": "datasources", - "lineageIsGroup": false, - "maturity": "planned", - "currentVersion": [ - 0, - 0 - ] - }, - "debugpanelcfg": { - "name": "DebugPanelCfg", - "pluralName": "DebugPanelCfgs", - "machineName": "debugpanelcfg", - "pluralMachineName": "debugpanelcfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "core", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "datasource", + "maturity": "planned", + "name": "DataSource", + "pluralMachineName": "datasources", + "pluralName": "DataSources" + }, + "debugpanelcfg": { + "category": "composable", + "currentVersion": [ + 0, + 0 + ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "debugpanelcfg", + "maturity": "planned", + "name": "DebugPanelCfg", + "pluralMachineName": "debugpanelcfgs", + "pluralName": "DebugPanelCfgs", "schemaInterface": "PanelCfg" }, "elasticsearchdataquery": { - "name": "ElasticsearchDataQuery", - "pluralName": "ElasticsearchDataQuerys", - "machineName": "elasticsearchdataquery", - "pluralMachineName": "elasticsearchdataquerys", - "lineageIsGroup": false, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "elasticsearchdataquery", + "maturity": "planned", + "name": "ElasticsearchDataQuery", + "pluralMachineName": "elasticsearchdataquerys", + "pluralName": "ElasticsearchDataQuerys", "schemaInterface": "DataQuery" }, "elasticsearchdatasourcecfg": { - "name": "ElasticsearchDataSourceCfg", - "pluralName": "ElasticsearchDataSourceCfgs", - "machineName": "elasticsearchdatasourcecfg", - "pluralMachineName": "elasticsearchdatasourcecfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "elasticsearchdatasourcecfg", + "maturity": "planned", + "name": "ElasticsearchDataSourceCfg", + "pluralMachineName": "elasticsearchdatasourcecfgs", + "pluralName": "ElasticsearchDataSourceCfgs", "schemaInterface": "DataSourceCfg" }, "flamegraphpanelcfg": { - "name": "FlameGraphPanelCfg", - "pluralName": "FlameGraphPanelCfgs", - "machineName": "flamegraphpanelcfg", - "pluralMachineName": "flamegraphpanelcfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "flamegraphpanelcfg", + "maturity": "planned", + "name": "FlameGraphPanelCfg", + "pluralMachineName": "flamegraphpanelcfgs", + "pluralName": "FlameGraphPanelCfgs", "schemaInterface": "PanelCfg" }, "folder": { - "name": "Folder", - "pluralName": "Folders", - "machineName": "folder", - "pluralMachineName": "folders", - "lineageIsGroup": false, - "maturity": "planned", - "currentVersion": [ - 0, - 0 - ] - }, - "gaugepanelcfg": { - "name": "GaugePanelCfg", - "pluralName": "GaugePanelCfgs", - "machineName": "gaugepanelcfg", - "pluralMachineName": "gaugepanelcfgs", - "lineageIsGroup": true, - "maturity": "experimental", + "category": "core", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "folder", + "maturity": "planned", + "name": "Folder", + "pluralMachineName": "folders", + "pluralName": "Folders" + }, + "gaugepanelcfg": { + "category": "composable", + "currentVersion": [ + 0, + 0 + ], + "lineageIsGroup": true, + "links": { + "docs": "https:/grafana.com/docs/grafana/next/developers/kinds/composable/gaugepanelcfg/schema-reference", + "go": "n/a", + "schema": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/gauge/panelcfg.cue", + "ts": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/gauge/panelcfg.gen.ts" + }, + "machineName": "gaugepanelcfg", + "maturity": "experimental", + "name": "GaugePanelCfg", + "pluralMachineName": "gaugepanelcfgs", + "pluralName": "GaugePanelCfgs", "schemaInterface": "PanelCfg" }, "geomappanelcfg": { - "name": "GeomapPanelCfg", - "pluralName": "GeomapPanelCfgs", - "machineName": "geomappanelcfg", - "pluralMachineName": "geomappanelcfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "geomappanelcfg", + "maturity": "planned", + "name": "GeomapPanelCfg", + "pluralMachineName": "geomappanelcfgs", + "pluralName": "GeomapPanelCfgs", "schemaInterface": "PanelCfg" }, "gettingstartedpanelcfg": { - "name": "GettingStartedPanelCfg", - "pluralName": "GettingStartedPanelCfgs", - "machineName": "gettingstartedpanelcfg", - "pluralMachineName": "gettingstartedpanelcfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "gettingstartedpanelcfg", + "maturity": "planned", + "name": "GettingStartedPanelCfg", + "pluralMachineName": "gettingstartedpanelcfgs", + "pluralName": "GettingStartedPanelCfgs", "schemaInterface": "PanelCfg" }, "googlecloudmonitoringdataquery": { - "name": "GoogleCloudMonitoringDataQuery", - "pluralName": "GoogleCloudMonitoringDataQuerys", - "machineName": "googlecloudmonitoringdataquery", - "pluralMachineName": "googlecloudmonitoringdataquerys", - "lineageIsGroup": false, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "googlecloudmonitoringdataquery", + "maturity": "planned", + "name": "GoogleCloudMonitoringDataQuery", + "pluralMachineName": "googlecloudmonitoringdataquerys", + "pluralName": "GoogleCloudMonitoringDataQuerys", "schemaInterface": "DataQuery" }, "googlecloudmonitoringdatasourcecfg": { - "name": "GoogleCloudMonitoringDataSourceCfg", - "pluralName": "GoogleCloudMonitoringDataSourceCfgs", - "machineName": "googlecloudmonitoringdatasourcecfg", - "pluralMachineName": "googlecloudmonitoringdatasourcecfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "googlecloudmonitoringdatasourcecfg", + "maturity": "planned", + "name": "GoogleCloudMonitoringDataSourceCfg", + "pluralMachineName": "googlecloudmonitoringdatasourcecfgs", + "pluralName": "GoogleCloudMonitoringDataSourceCfgs", "schemaInterface": "DataSourceCfg" }, "grafanadataquery": { - "name": "GrafanaDataQuery", - "pluralName": "GrafanaDataQuerys", - "machineName": "grafanadataquery", - "pluralMachineName": "grafanadataquerys", - "lineageIsGroup": false, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "grafanadataquery", + "maturity": "planned", + "name": "GrafanaDataQuery", + "pluralMachineName": "grafanadataquerys", + "pluralName": "GrafanaDataQuerys", "schemaInterface": "DataQuery" }, "grafanadatasourcecfg": { - "name": "GrafanaDataSourceCfg", - "pluralName": "GrafanaDataSourceCfgs", - "machineName": "grafanadatasourcecfg", - "pluralMachineName": "grafanadatasourcecfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "grafanadatasourcecfg", + "maturity": "planned", + "name": "GrafanaDataSourceCfg", + "pluralMachineName": "grafanadatasourcecfgs", + "pluralName": "GrafanaDataSourceCfgs", "schemaInterface": "DataSourceCfg" }, "graphitedataquery": { - "name": "GraphiteDataQuery", - "pluralName": "GraphiteDataQuerys", - "machineName": "graphitedataquery", - "pluralMachineName": "graphitedataquerys", - "lineageIsGroup": false, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "graphitedataquery", + "maturity": "planned", + "name": "GraphiteDataQuery", + "pluralMachineName": "graphitedataquerys", + "pluralName": "GraphiteDataQuerys", "schemaInterface": "DataQuery" }, "graphitedatasourcecfg": { - "name": "GraphiteDataSourceCfg", - "pluralName": "GraphiteDataSourceCfgs", - "machineName": "graphitedatasourcecfg", - "pluralMachineName": "graphitedatasourcecfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "graphitedatasourcecfg", + "maturity": "planned", + "name": "GraphiteDataSourceCfg", + "pluralMachineName": "graphitedatasourcecfgs", + "pluralName": "GraphiteDataSourceCfgs", "schemaInterface": "DataSourceCfg" }, "grapholdpanelcfg": { - "name": "GraphOldPanelCfg", - "pluralName": "GraphOldPanelCfgs", - "machineName": "grapholdpanelcfg", - "pluralMachineName": "grapholdpanelcfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "grapholdpanelcfg", + "maturity": "planned", + "name": "GraphOldPanelCfg", + "pluralMachineName": "grapholdpanelcfgs", + "pluralName": "GraphOldPanelCfgs", "schemaInterface": "PanelCfg" }, "histogrampanelcfg": { - "name": "HistogramPanelCfg", - "pluralName": "HistogramPanelCfgs", - "machineName": "histogrampanelcfg", - "pluralMachineName": "histogrampanelcfgs", - "lineageIsGroup": true, - "maturity": "experimental", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "https:/grafana.com/docs/grafana/next/developers/kinds/composable/histogrampanelcfg/schema-reference", + "go": "n/a", + "schema": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/histogram/panelcfg.cue", + "ts": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/histogram/panelcfg.gen.ts" + }, + "machineName": "histogrampanelcfg", + "maturity": "experimental", + "name": "HistogramPanelCfg", + "pluralMachineName": "histogrampanelcfgs", + "pluralName": "HistogramPanelCfgs", "schemaInterface": "PanelCfg" }, "iconpanelcfg": { - "name": "IconPanelCfg", - "pluralName": "IconPanelCfgs", - "machineName": "iconpanelcfg", - "pluralMachineName": "iconpanelcfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "iconpanelcfg", + "maturity": "planned", + "name": "IconPanelCfg", + "pluralMachineName": "iconpanelcfgs", + "pluralName": "IconPanelCfgs", "schemaInterface": "PanelCfg" }, "jaegerdataquery": { - "name": "JaegerDataQuery", - "pluralName": "JaegerDataQuerys", - "machineName": "jaegerdataquery", - "pluralMachineName": "jaegerdataquerys", - "lineageIsGroup": false, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "jaegerdataquery", + "maturity": "planned", + "name": "JaegerDataQuery", + "pluralMachineName": "jaegerdataquerys", + "pluralName": "JaegerDataQuerys", "schemaInterface": "DataQuery" }, "jaegerdatasourcecfg": { - "name": "JaegerDataSourceCfg", - "pluralName": "JaegerDataSourceCfgs", - "machineName": "jaegerdatasourcecfg", - "pluralMachineName": "jaegerdatasourcecfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "jaegerdatasourcecfg", + "maturity": "planned", + "name": "JaegerDataSourceCfg", + "pluralMachineName": "jaegerdatasourcecfgs", + "pluralName": "JaegerDataSourceCfgs", "schemaInterface": "DataSourceCfg" }, "livepanelcfg": { - "name": "LivePanelCfg", - "pluralName": "LivePanelCfgs", - "machineName": "livepanelcfg", - "pluralMachineName": "livepanelcfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "livepanelcfg", + "maturity": "planned", + "name": "LivePanelCfg", + "pluralMachineName": "livepanelcfgs", + "pluralName": "LivePanelCfgs", "schemaInterface": "PanelCfg" }, "logspanelcfg": { - "name": "LogsPanelCfg", - "pluralName": "LogsPanelCfgs", - "machineName": "logspanelcfg", - "pluralMachineName": "logspanelcfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "logspanelcfg", + "maturity": "planned", + "name": "LogsPanelCfg", + "pluralMachineName": "logspanelcfgs", + "pluralName": "LogsPanelCfgs", "schemaInterface": "PanelCfg" }, "lokidataquery": { - "name": "LokiDataQuery", - "pluralName": "LokiDataQuerys", - "machineName": "lokidataquery", - "pluralMachineName": "lokidataquerys", - "lineageIsGroup": false, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "lokidataquery", + "maturity": "planned", + "name": "LokiDataQuery", + "pluralMachineName": "lokidataquerys", + "pluralName": "LokiDataQuerys", "schemaInterface": "DataQuery" }, "lokidatasourcecfg": { - "name": "LokiDataSourceCfg", - "pluralName": "LokiDataSourceCfgs", - "machineName": "lokidatasourcecfg", - "pluralMachineName": "lokidatasourcecfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "lokidatasourcecfg", + "maturity": "planned", + "name": "LokiDataSourceCfg", + "pluralMachineName": "lokidatasourcecfgs", + "pluralName": "LokiDataSourceCfgs", "schemaInterface": "DataSourceCfg" }, "microsoftsqlserverdataquery": { - "name": "MicrosoftSQLServerDataQuery", - "pluralName": "MicrosoftSQLServerDataQuerys", - "machineName": "microsoftsqlserverdataquery", - "pluralMachineName": "microsoftsqlserverdataquerys", - "lineageIsGroup": false, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "microsoftsqlserverdataquery", + "maturity": "planned", + "name": "MicrosoftSQLServerDataQuery", + "pluralMachineName": "microsoftsqlserverdataquerys", + "pluralName": "MicrosoftSQLServerDataQuerys", "schemaInterface": "DataQuery" }, "microsoftsqlserverdatasourcecfg": { - "name": "MicrosoftSQLServerDataSourceCfg", - "pluralName": "MicrosoftSQLServerDataSourceCfgs", - "machineName": "microsoftsqlserverdatasourcecfg", - "pluralMachineName": "microsoftsqlserverdatasourcecfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "microsoftsqlserverdatasourcecfg", + "maturity": "planned", + "name": "MicrosoftSQLServerDataSourceCfg", + "pluralMachineName": "microsoftsqlserverdatasourcecfgs", + "pluralName": "MicrosoftSQLServerDataSourceCfgs", "schemaInterface": "DataSourceCfg" }, "mysqldataquery": { - "name": "MySQLDataQuery", - "pluralName": "MySQLDataQuerys", - "machineName": "mysqldataquery", - "pluralMachineName": "mysqldataquerys", - "lineageIsGroup": false, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "mysqldataquery", + "maturity": "planned", + "name": "MySQLDataQuery", + "pluralMachineName": "mysqldataquerys", + "pluralName": "MySQLDataQuerys", "schemaInterface": "DataQuery" }, "mysqldatasourcecfg": { - "name": "MySQLDataSourceCfg", - "pluralName": "MySQLDataSourceCfgs", - "machineName": "mysqldatasourcecfg", - "pluralMachineName": "mysqldatasourcecfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "mysqldatasourcecfg", + "maturity": "planned", + "name": "MySQLDataSourceCfg", + "pluralMachineName": "mysqldatasourcecfgs", + "pluralName": "MySQLDataSourceCfgs", "schemaInterface": "DataSourceCfg" }, "newspanelcfg": { - "name": "NewsPanelCfg", - "pluralName": "NewsPanelCfgs", - "machineName": "newspanelcfg", - "pluralMachineName": "newspanelcfgs", - "lineageIsGroup": true, - "maturity": "experimental", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "https:/grafana.com/docs/grafana/next/developers/kinds/composable/newspanelcfg/schema-reference", + "go": "n/a", + "schema": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/news/panelcfg.cue", + "ts": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/news/panelcfg.gen.ts" + }, + "machineName": "newspanelcfg", + "maturity": "experimental", + "name": "NewsPanelCfg", + "pluralMachineName": "newspanelcfgs", + "pluralName": "NewsPanelCfgs", "schemaInterface": "PanelCfg" }, "nodegraphpanelcfg": { - "name": "NodeGraphPanelCfg", - "pluralName": "NodeGraphPanelCfgs", - "machineName": "nodegraphpanelcfg", - "pluralMachineName": "nodegraphpanelcfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "nodegraphpanelcfg", + "maturity": "planned", + "name": "NodeGraphPanelCfg", + "pluralMachineName": "nodegraphpanelcfgs", + "pluralName": "NodeGraphPanelCfgs", "schemaInterface": "PanelCfg" }, "parcadataquery": { - "name": "ParcaDataQuery", - "pluralName": "ParcaDataQuerys", - "machineName": "parcadataquery", - "pluralMachineName": "parcadataquerys", - "lineageIsGroup": false, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "parcadataquery", + "maturity": "planned", + "name": "ParcaDataQuery", + "pluralMachineName": "parcadataquerys", + "pluralName": "ParcaDataQuerys", "schemaInterface": "DataQuery" }, "parcadatasourcecfg": { - "name": "ParcaDataSourceCfg", - "pluralName": "ParcaDataSourceCfgs", - "machineName": "parcadatasourcecfg", - "pluralMachineName": "parcadatasourcecfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "parcadatasourcecfg", + "maturity": "planned", + "name": "ParcaDataSourceCfg", + "pluralMachineName": "parcadatasourcecfgs", + "pluralName": "ParcaDataSourceCfgs", "schemaInterface": "DataSourceCfg" }, "phlaredataquery": { - "name": "PhlareDataQuery", - "pluralName": "PhlareDataQuerys", - "machineName": "phlaredataquery", - "pluralMachineName": "phlaredataquerys", - "lineageIsGroup": false, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "phlaredataquery", + "maturity": "planned", + "name": "PhlareDataQuery", + "pluralMachineName": "phlaredataquerys", + "pluralName": "PhlareDataQuerys", "schemaInterface": "DataQuery" }, "phlaredatasourcecfg": { - "name": "PhlareDataSourceCfg", - "pluralName": "PhlareDataSourceCfgs", - "machineName": "phlaredatasourcecfg", - "pluralMachineName": "phlaredatasourcecfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "phlaredatasourcecfg", + "maturity": "planned", + "name": "PhlareDataSourceCfg", + "pluralMachineName": "phlaredatasourcecfgs", + "pluralName": "PhlareDataSourceCfgs", "schemaInterface": "DataSourceCfg" }, "piechartpanelcfg": { - "name": "PieChartPanelCfg", - "pluralName": "PieChartPanelCfgs", - "machineName": "piechartpanelcfg", - "pluralMachineName": "piechartpanelcfgs", - "lineageIsGroup": true, - "maturity": "experimental", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "https:/grafana.com/docs/grafana/next/developers/kinds/composable/piechartpanelcfg/schema-reference", + "go": "n/a", + "schema": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/piechart/panelcfg.cue", + "ts": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/piechart/panelcfg.gen.ts" + }, + "machineName": "piechartpanelcfg", + "maturity": "experimental", + "name": "PieChartPanelCfg", + "pluralMachineName": "piechartpanelcfgs", + "pluralName": "PieChartPanelCfgs", "schemaInterface": "PanelCfg" }, "playlist": { - "name": "Playlist", - "pluralName": "Playlists", - "machineName": "playlist", - "pluralMachineName": "playlists", - "lineageIsGroup": false, - "maturity": "merged", - "currentVersion": [ - 0, - 0 - ] - }, - "postgresqldataquery": { - "name": "PostgreSQLDataQuery", - "pluralName": "PostgreSQLDataQuerys", - "machineName": "postgresqldataquery", - "pluralMachineName": "postgresqldataquerys", - "lineageIsGroup": false, - "maturity": "planned", + "category": "core", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "https:/grafana.com/docs/grafana/next/developers/kinds/core/playlist/schema-reference", + "go": "https:/github.com/grafana/grafana/tree/main/pkg/kinds/playlist", + "schema": "https:/github.com/grafana/grafana/tree/main/kinds/playlist/playlist_kind.cue", + "ts": "https:/github.com/grafana/grafana/tree/main/packages/grafana-schema/src/raw/playlist/x/playlist_types.gen.ts" + }, + "machineName": "playlist", + "maturity": "merged", + "name": "Playlist", + "pluralMachineName": "playlists", + "pluralName": "Playlists" + }, + "postgresqldataquery": { + "category": "composable", + "currentVersion": [ + 0, + 0 + ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "postgresqldataquery", + "maturity": "planned", + "name": "PostgreSQLDataQuery", + "pluralMachineName": "postgresqldataquerys", + "pluralName": "PostgreSQLDataQuerys", "schemaInterface": "DataQuery" }, "postgresqldatasourcecfg": { - "name": "PostgreSQLDataSourceCfg", - "pluralName": "PostgreSQLDataSourceCfgs", - "machineName": "postgresqldatasourcecfg", - "pluralMachineName": "postgresqldatasourcecfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "postgresqldatasourcecfg", + "maturity": "planned", + "name": "PostgreSQLDataSourceCfg", + "pluralMachineName": "postgresqldatasourcecfgs", + "pluralName": "PostgreSQLDataSourceCfgs", "schemaInterface": "DataSourceCfg" }, "prometheusdataquery": { - "name": "PrometheusDataQuery", - "pluralName": "PrometheusDataQuerys", - "machineName": "prometheusdataquery", - "pluralMachineName": "prometheusdataquerys", - "lineageIsGroup": false, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "prometheusdataquery", + "maturity": "planned", + "name": "PrometheusDataQuery", + "pluralMachineName": "prometheusdataquerys", + "pluralName": "PrometheusDataQuerys", "schemaInterface": "DataQuery" }, "prometheusdatasourcecfg": { - "name": "PrometheusDataSourceCfg", - "pluralName": "PrometheusDataSourceCfgs", - "machineName": "prometheusdatasourcecfg", - "pluralMachineName": "prometheusdatasourcecfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "prometheusdatasourcecfg", + "maturity": "planned", + "name": "PrometheusDataSourceCfg", + "pluralMachineName": "prometheusdatasourcecfgs", + "pluralName": "PrometheusDataSourceCfgs", "schemaInterface": "DataSourceCfg" }, "query": { - "name": "Query", - "pluralName": "Querys", - "machineName": "query", - "pluralMachineName": "querys", - "lineageIsGroup": false, - "maturity": "planned", - "currentVersion": [ - 0, - 0 - ] - }, - "queryhistory": { - "name": "QueryHistory", - "pluralName": "QueryHistorys", - "machineName": "queryhistory", - "pluralMachineName": "queryhistorys", - "lineageIsGroup": false, - "maturity": "planned", - "currentVersion": [ - 0, - 0 - ] - }, - "serviceaccount": { - "name": "ServiceAccount", - "pluralName": "ServiceAccounts", - "machineName": "serviceaccount", - "pluralMachineName": "serviceaccounts", - "lineageIsGroup": false, - "maturity": "planned", - "currentVersion": [ - 0, - 0 - ] - }, - "statpanelcfg": { - "name": "StatPanelCfg", - "pluralName": "StatPanelCfgs", - "machineName": "statpanelcfg", - "pluralMachineName": "statpanelcfgs", - "lineageIsGroup": true, - "maturity": "experimental", + "category": "core", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "query", + "maturity": "planned", + "name": "Query", + "pluralMachineName": "querys", + "pluralName": "Querys" + }, + "queryhistory": { + "category": "core", + "currentVersion": [ + 0, + 0 + ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "queryhistory", + "maturity": "planned", + "name": "QueryHistory", + "pluralMachineName": "queryhistorys", + "pluralName": "QueryHistorys" + }, + "serviceaccount": { + "category": "core", + "currentVersion": [ + 0, + 0 + ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "serviceaccount", + "maturity": "planned", + "name": "ServiceAccount", + "pluralMachineName": "serviceaccounts", + "pluralName": "ServiceAccounts" + }, + "statpanelcfg": { + "category": "composable", + "currentVersion": [ + 0, + 0 + ], + "lineageIsGroup": true, + "links": { + "docs": "https:/grafana.com/docs/grafana/next/developers/kinds/composable/statpanelcfg/schema-reference", + "go": "n/a", + "schema": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/stat/panelcfg.cue", + "ts": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/stat/panelcfg.gen.ts" + }, + "machineName": "statpanelcfg", + "maturity": "experimental", + "name": "StatPanelCfg", + "pluralMachineName": "statpanelcfgs", + "pluralName": "StatPanelCfgs", "schemaInterface": "PanelCfg" }, "tableoldpanelcfg": { - "name": "TableOldPanelCfg", - "pluralName": "TableOldPanelCfgs", - "machineName": "tableoldpanelcfg", - "pluralMachineName": "tableoldpanelcfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "tableoldpanelcfg", + "maturity": "planned", + "name": "TableOldPanelCfg", + "pluralMachineName": "tableoldpanelcfgs", + "pluralName": "TableOldPanelCfgs", "schemaInterface": "PanelCfg" }, "team": { - "name": "Team", - "pluralName": "Teams", - "machineName": "team", - "pluralMachineName": "teams", - "lineageIsGroup": false, - "maturity": "merged", - "currentVersion": [ - 0, - 0 - ] - }, - "tempodataquery": { - "name": "TempoDataQuery", - "pluralName": "TempoDataQuerys", - "machineName": "tempodataquery", - "pluralMachineName": "tempodataquerys", - "lineageIsGroup": false, - "maturity": "planned", + "category": "core", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "https:/grafana.com/docs/grafana/next/developers/kinds/core/team/schema-reference", + "go": "https:/github.com/grafana/grafana/tree/main/pkg/kinds/team", + "schema": "https:/github.com/grafana/grafana/tree/main/kinds/team/team_kind.cue", + "ts": "https:/github.com/grafana/grafana/tree/main/packages/grafana-schema/src/raw/team/x/team_types.gen.ts" + }, + "machineName": "team", + "maturity": "merged", + "name": "Team", + "pluralMachineName": "teams", + "pluralName": "Teams" + }, + "tempodataquery": { + "category": "composable", + "currentVersion": [ + 0, + 0 + ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "tempodataquery", + "maturity": "planned", + "name": "TempoDataQuery", + "pluralMachineName": "tempodataquerys", + "pluralName": "TempoDataQuerys", "schemaInterface": "DataQuery" }, "tempodatasourcecfg": { - "name": "TempoDataSourceCfg", - "pluralName": "TempoDataSourceCfgs", - "machineName": "tempodatasourcecfg", - "pluralMachineName": "tempodatasourcecfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "tempodatasourcecfg", + "maturity": "planned", + "name": "TempoDataSourceCfg", + "pluralMachineName": "tempodatasourcecfgs", + "pluralName": "TempoDataSourceCfgs", "schemaInterface": "DataSourceCfg" }, "testdatadbdataquery": { - "name": "TestDataDBDataQuery", - "pluralName": "TestDataDBDataQuerys", - "machineName": "testdatadbdataquery", - "pluralMachineName": "testdatadbdataquerys", - "lineageIsGroup": false, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "testdatadbdataquery", + "maturity": "planned", + "name": "TestDataDBDataQuery", + "pluralMachineName": "testdatadbdataquerys", + "pluralName": "TestDataDBDataQuerys", "schemaInterface": "DataQuery" }, "testdatadbdatasourcecfg": { - "name": "TestDataDBDataSourceCfg", - "pluralName": "TestDataDBDataSourceCfgs", - "machineName": "testdatadbdatasourcecfg", - "pluralMachineName": "testdatadbdatasourcecfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "testdatadbdatasourcecfg", + "maturity": "planned", + "name": "TestDataDBDataSourceCfg", + "pluralMachineName": "testdatadbdatasourcecfgs", + "pluralName": "TestDataDBDataSourceCfgs", "schemaInterface": "DataSourceCfg" }, "textpanelcfg": { - "name": "TextPanelCfg", - "pluralName": "TextPanelCfgs", - "machineName": "textpanelcfg", - "pluralMachineName": "textpanelcfgs", - "lineageIsGroup": true, - "maturity": "experimental", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "https:/grafana.com/docs/grafana/next/developers/kinds/composable/textpanelcfg/schema-reference", + "go": "n/a", + "schema": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/text/panelcfg.cue", + "ts": "https:/github.com/grafana/grafana/tree/main/public/app/plugins/panel/text/panelcfg.gen.ts" + }, + "machineName": "textpanelcfg", + "maturity": "experimental", + "name": "TextPanelCfg", + "pluralMachineName": "textpanelcfgs", + "pluralName": "TextPanelCfgs", "schemaInterface": "PanelCfg" }, "thumb": { - "name": "Thumb", - "pluralName": "Thumbs", - "machineName": "thumb", - "pluralMachineName": "thumbs", - "lineageIsGroup": false, - "maturity": "planned", - "currentVersion": [ - 0, - 0 - ] - }, - "tracespanelcfg": { - "name": "TracesPanelCfg", - "pluralName": "TracesPanelCfgs", - "machineName": "tracespanelcfg", - "pluralMachineName": "tracespanelcfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "core", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "thumb", + "maturity": "planned", + "name": "Thumb", + "pluralMachineName": "thumbs", + "pluralName": "Thumbs" + }, + "tracespanelcfg": { + "category": "composable", + "currentVersion": [ + 0, + 0 + ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "tracespanelcfg", + "maturity": "planned", + "name": "TracesPanelCfg", + "pluralMachineName": "tracespanelcfgs", + "pluralName": "TracesPanelCfgs", "schemaInterface": "PanelCfg" }, "user": { - "name": "User", - "pluralName": "Users", - "machineName": "user", - "pluralMachineName": "users", - "lineageIsGroup": false, - "maturity": "planned", - "currentVersion": [ - 0, - 0 - ] - }, - "welcomepanelcfg": { - "name": "WelcomePanelCfg", - "pluralName": "WelcomePanelCfgs", - "machineName": "welcomepanelcfg", - "pluralMachineName": "welcomepanelcfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "core", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "user", + "maturity": "planned", + "name": "User", + "pluralMachineName": "users", + "pluralName": "Users" + }, + "welcomepanelcfg": { + "category": "composable", + "currentVersion": [ + 0, + 0 + ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "welcomepanelcfg", + "maturity": "planned", + "name": "WelcomePanelCfg", + "pluralMachineName": "welcomepanelcfgs", + "pluralName": "WelcomePanelCfgs", "schemaInterface": "PanelCfg" }, "xychartpanelcfg": { - "name": "XYChartPanelCfg", - "pluralName": "XYChartPanelCfgs", - "machineName": "xychartpanelcfg", - "pluralMachineName": "xychartpanelcfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "xychartpanelcfg", + "maturity": "planned", + "name": "XYChartPanelCfg", + "pluralMachineName": "xychartpanelcfgs", + "pluralName": "XYChartPanelCfgs", "schemaInterface": "PanelCfg" }, "zipkindataquery": { - "name": "ZipkinDataQuery", - "pluralName": "ZipkinDataQuerys", - "machineName": "zipkindataquery", - "pluralMachineName": "zipkindataquerys", - "lineageIsGroup": false, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": false, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "zipkindataquery", + "maturity": "planned", + "name": "ZipkinDataQuery", + "pluralMachineName": "zipkindataquerys", + "pluralName": "ZipkinDataQuerys", "schemaInterface": "DataQuery" }, "zipkindatasourcecfg": { - "name": "ZipkinDataSourceCfg", - "pluralName": "ZipkinDataSourceCfgs", - "machineName": "zipkindatasourcecfg", - "pluralMachineName": "zipkindatasourcecfgs", - "lineageIsGroup": true, - "maturity": "planned", + "category": "composable", "currentVersion": [ 0, 0 ], + "lineageIsGroup": true, + "links": { + "docs": "n/a", + "go": "n/a", + "schema": "n/a", + "ts": "n/a" + }, + "machineName": "zipkindatasourcecfg", + "maturity": "planned", + "name": "ZipkinDataSourceCfg", + "pluralMachineName": "zipkindatasourcecfgs", + "pluralName": "ZipkinDataSourceCfgs", "schemaInterface": "DataSourceCfg" } },