package plugins import ( "context" "github.com/grafana/grafana/pkg/components/simplejson" "github.com/grafana/grafana/pkg/models" ) // Manager is the plugin manager service interface. type Manager interface { // Renderer gets the renderer plugin. Renderer() *RendererPlugin // GetDataSource gets a data source plugin with a certain ID. GetDataSource(id string) *DataSourcePlugin // GetDataPlugin gets a data plugin with a certain ID. GetDataPlugin(id string) DataPlugin // GetPlugin gets a plugin with a certain ID. GetPlugin(id string) *PluginBase // DataSourceCount gets the number of data sources. DataSourceCount() int // DataSources gets all data sources. DataSources() []*DataSourcePlugin // GetEnabledPlugins gets enabled plugins. GetEnabledPlugins(orgID int64) (*EnabledPlugins, error) // GrafanaLatestVersion gets the latest Grafana version. GrafanaLatestVersion() string // GrafanaHasUpdate returns whether Grafana has an update. GrafanaHasUpdate() bool // Plugins gets all plugins. Plugins() []*PluginBase // GetPluginSettings gets settings for a certain plugin. GetPluginSettings(orgID int64) (map[string]*models.PluginSettingInfoDTO, error) // GetPluginDashboards gets dashboards for a certain org/plugin. GetPluginDashboards(orgID int64, pluginID string) ([]*PluginDashboardInfoDTO, error) // GetPluginMarkdown gets markdown for a certain plugin/name. GetPluginMarkdown(pluginID string, name string) ([]byte, error) // ImportDashboard imports a dashboard. ImportDashboard(pluginID, path string, orgID, folderID int64, dashboardModel *simplejson.Json, overwrite bool, inputs []ImportDashboardInput, user *models.SignedInUser, requestHandler DataRequestHandler) (PluginDashboardInfoDTO, error) // ScanningErrors returns plugin scanning errors encountered. ScanningErrors() []PluginError } type ImportDashboardInput struct { Type string `json:"type"` PluginId string `json:"pluginId"` Name string `json:"name"` Value string `json:"value"` } // DataRequestHandler is a data request handler interface. type DataRequestHandler interface { // HandleRequest handles a data request. HandleRequest(context.Context, *models.DataSource, DataQuery) (DataResponse, error) }