<commit_before>package plugins

import "github.com/grafana/grafana/pkg/models"

type DataSourcePlugin struct {
	Type               string                 `json:"type"`
	Name               string                 `json:"name"`
	ServiceName        string                 `json:"serviceName"`
	Module             string                 `json:"module"`
	Partials           map[string]interface{} `json:"partials"`
	DefaultMatchFormat string                 `json:"defaultMatchFormat"`
	Annotations        bool                   `json:"annotations"`
	Metrics            bool                   `json:"metrics"`
	BuiltIn            bool                   `json:"builtIn"`
	StaticRootConfig   *StaticRootConfig      `json:"staticRoot"`
}

type PanelPlugin struct {
	Type             string            `json:"type"`
	Name             string            `json:"name"`
	Module           string            `json:"module"`
	StaticRootConfig *StaticRootConfig `json:"staticRoot"`
}

type StaticRootConfig struct {
	Url  string `json:"url"`
	Path string `json:"path"`
}

type ExternalPluginRoute struct {
	Path            string          `json:"path"`
	Method          string          `json:"method"`
	ReqSignedIn     bool            `json:"reqSignedIn"`
	ReqGrafanaAdmin bool            `json:"reqGrafanaAdmin"`
	ReqRole         models.RoleType `json:"reqRole"`
	Url             string          `json:"url"`
}

type ExternalPluginJs struct {
	Module string `json:"module"`
}

type ExternalPluginNavLink struct {
	Text string `json:"text"`
	Icon string `json:"icon"`
	Href string `json:"href"`
}

type ExternalPluginCss struct {
	Href string `json:"href"`
}

type ExternalPlugin struct {
	Routes           []*ExternalPluginRoute   `json:"routes"`
	Js               []*ExternalPluginJs      `json:"js"`
	Css              []*ExternalPluginCss     `json:"css"`
	MainNavLinks     []*ExternalPluginNavLink `json:"mainNavLinks"`
	StaticRootConfig *StaticRootConfig        `json:"staticRoot"`
}<commit_msg>Add plugin type field to externalPlugin model<commit_after>package plugins

import "github.com/grafana/grafana/pkg/models"

type DataSourcePlugin struct {
	Type               string                 `json:"type"`
	Name               string                 `json:"name"`
	ServiceName        string                 `json:"serviceName"`
	Module             string                 `json:"module"`
	Partials           map[string]interface{} `json:"partials"`
	DefaultMatchFormat string                 `json:"defaultMatchFormat"`
	Annotations        bool                   `json:"annotations"`
	Metrics            bool                   `json:"metrics"`
	BuiltIn            bool                   `json:"builtIn"`
	StaticRootConfig   *StaticRootConfig      `json:"staticRoot"`
}

type PanelPlugin struct {
	Type             string            `json:"type"`
	Name             string            `json:"name"`
	Module           string            `json:"module"`
	StaticRootConfig *StaticRootConfig `json:"staticRoot"`
}

type StaticRootConfig struct {
	Url  string `json:"url"`
	Path string `json:"path"`
}

type ExternalPluginRoute struct {
	Path            string          `json:"path"`
	Method          string          `json:"method"`
	ReqSignedIn     bool            `json:"reqSignedIn"`
	ReqGrafanaAdmin bool            `json:"reqGrafanaAdmin"`
	ReqRole         models.RoleType `json:"reqRole"`
	Url             string          `json:"url"`
}

type ExternalPluginJs struct {
	Module string `json:"module"`
}

type ExternalPluginNavLink struct {
	Text string `json:"text"`
	Icon string `json:"icon"`
	Href string `json:"href"`
}

type ExternalPluginCss struct {
	Href string `json:"href"`
}

type ExternalPlugin struct {
	Type             string                   `json:"type"`
	Routes           []*ExternalPluginRoute   `json:"routes"`
	Js               []*ExternalPluginJs      `json:"js"`
	Css              []*ExternalPluginCss     `json:"css"`
	MainNavLinks     []*ExternalPluginNavLink `json:"mainNavLinks"`
	StaticRootConfig *StaticRootConfig        `json:"staticRoot"`
}
{'fraction_non_alphanumeric': 0.10288675055514433, 'fraction_numerical': 0.0, 'mean_word_length': 2.101759755164499, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1963162', 'n_tokens_mistral': 1078, 'n_tokens_neox': 1059, 'n_words': 257}