mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
26 lines
881 B
Go
26 lines
881 B
Go
|
|
package coremodel
|
||
|
|
|
||
|
|
import (
|
||
|
|
"github.com/grafana/thema"
|
||
|
|
)
|
||
|
|
|
||
|
|
// Interface is the primary coremodel interface that must be implemented by all
|
||
|
|
// Grafana coremodels. A coremodel is the foundational, canonical schema for
|
||
|
|
// some known-at-compile-time Grafana object.
|
||
|
|
//
|
||
|
|
// Currently, all Coremodels are expressed as Thema lineages.
|
||
|
|
type Interface interface {
|
||
|
|
// Lineage should return the canonical Thema lineage for the coremodel.
|
||
|
|
Lineage() thema.Lineage
|
||
|
|
|
||
|
|
// CurrentSchema should return the schema of the version that the Grafana backend
|
||
|
|
// is currently written against. (While Grafana can accept data from all
|
||
|
|
// older versions of the Thema schema, backend Go code is written against a
|
||
|
|
// single version for simplicity)
|
||
|
|
CurrentSchema() thema.Schema
|
||
|
|
|
||
|
|
// GoType should return a pointer to the Go struct type that corresponds to
|
||
|
|
// the Current() schema.
|
||
|
|
GoType() interface{}
|
||
|
|
}
|