gapi

package module
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 15, 2021 License: Apache-2.0 Imports: 15 Imported by: 0

README

DEPRECATED

⚠ ⚠ ⚠

This repository is no longer being maintained.

We're in the process of creating our next generation API clients.

In the interim, further changes to this repository should only be to support grafana/terraform-provider-grafana.


Grafana HTTP API Client for Go

Tests

To run the tests:

go test

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Alert

type Alert struct {
	ID             int64  `json:"id,omitempty"`
	DashboardID    int64  `json:"dashboardId,omitempty"`
	DashboardUID   string `json:"dashboardUid,omitempty"`
	DashboardSlug  string `json:"dashboardSlug,omitempty"`
	PanelID        int64  `json:"panelId,omitempty"`
	Name           string `json:"name,omitempty"`
	State          string `json:"state,omitempty"`
	NewStateDate   string `json:"newStateDate,omitempty"`
	EvalDate       string `json:"evalDate,omitempty"`
	ExecutionError string `json:"executionError,omitempty"`
	URL            string `json:"url,omitempty"`
}

Alert represents a Grafana API Alert

type AlertNotification

type AlertNotification struct {
	ID                    int64       `json:"id,omitempty"`
	UID                   string      `json:"uid"`
	Name                  string      `json:"name"`
	Type                  string      `json:"type"`
	IsDefault             bool        `json:"isDefault"`
	DisableResolveMessage bool        `json:"disableResolveMessage"`
	SendReminder          bool        `json:"sendReminder"`
	Frequency             string      `json:"frequency"`
	Settings              interface{} `json:"settings"`
	SecureFields          interface{} `json:"secureFields,omitempty"`
	SecureSettings        interface{} `json:"secureSettings,omitempty"`
}

AlertNotification represents a Grafana alert notification.

type Annotation

type Annotation struct {
	ID          int64    `json:"id,omitempty"`
	AlertID     int64    `json:"alertId,omitempty"`
	DashboardID int64    `json:"dashboardId"`
	PanelID     int64    `json:"panelId"`
	UserID      int64    `json:"userId,omitempty"`
	UserName    string   `json:"userName,omitempty"`
	NewState    string   `json:"newState,omitempty"`
	PrevState   string   `json:"prevState,omitempty"`
	Time        int64    `json:"time"`
	TimeEnd     int64    `json:"timeEnd,omitempty"`
	Text        string   `json:"text"`
	Metric      string   `json:"metric,omitempty"`
	RegionID    int64    `json:"regionId,omitempty"`
	Type        string   `json:"type,omitempty"`
	Tags        []string `json:"tags,omitempty"`
	IsRegion    bool     `json:"isRegion,omitempty"`
}

Annotation represents a Grafana API Annotation

type BuiltInRoleAssignment

type BuiltInRoleAssignment struct {
	BuiltinRole string `json:"builtInRole"`
	RoleUID     string `json:"roleUid"`
	Global      bool   `json:"global"`
}

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client is a Grafana API client.

func New

func New(baseURL string, cfg Config) (*Client, error)

New creates a new Grafana client.

func (*Client) AddOrgUser

func (c *Client) AddOrgUser(orgID int64, user, role string) error

AddOrgUser adds a user to an org with the specified role.

func (*Client) AddTeam

func (c *Client) AddTeam(name string, email string) (int64, error)

AddTeam makes a new team email arg is an optional value. If you don't want to set email, please set "" (empty string). When team creation is successful, returns the team ID.

func (*Client) AddTeamMember

func (c *Client) AddTeamMember(id int64, userID int64) error

AddTeamMember adds a user to the Grafana team whose ID it's passed.

func (*Client) Alert

func (c *Client) Alert(id int64) (Alert, error)

Alert fetches and returns an individual Grafana alert.

func (*Client) AlertNotification

func (c *Client) AlertNotification(id int64) (*AlertNotification, error)

AlertNotification fetches and returns a Grafana alert notification.

func (*Client) AlertNotifications

func (c *Client) AlertNotifications() ([]AlertNotification, error)

AlertNotifications fetches and returns Grafana alert notifications.

func (*Client) Alerts

func (c *Client) Alerts(params url.Values) ([]Alert, error)

Alerts fetches the annotations queried with the params it's passed.

func (*Client) Annotations

func (c *Client) Annotations(params url.Values) ([]Annotation, error)

Annotations fetches the annotations queried with the params it's passed

func (*Client) CreateUser

func (c *Client) CreateUser(user User) (int64, error)

CreateUser creates a Grafana user.

func (*Client) Dashboard

func (c *Client) Dashboard(slug string) (*Dashboard, error)

Dashboard will be removed. Deprecated: Starting from Grafana v5.0. Use DashboardByUID instead.

func (*Client) DashboardByUID

func (c *Client) DashboardByUID(uid string) (*Dashboard, error)

DashboardByUID gets a dashboard by UID.

func (*Client) DashboardPermissions

func (c *Client) DashboardPermissions(id int64) ([]*DashboardPermission, error)

DashboardPermissions fetches and returns the permissions for the dashboard whose ID it's passed.

func (*Client) Dashboards

func (c *Client) Dashboards() ([]FolderDashboardSearchResponse, error)

Dashboards fetches and returns all dashboards.

func (*Client) DataSource

func (c *Client) DataSource(id int64) (*DataSource, error)

DataSource fetches and returns the Grafana data source whose ID it's passed.

func (*Client) DeleteAlertNotification

func (c *Client) DeleteAlertNotification(id int64) error

DeleteAlertNotification deletes a Grafana alert notification.

func (*Client) DeleteAnnotation

func (c *Client) DeleteAnnotation(id int64) (string, error)

DeleteAnnotation deletes the annotation of the ID it is passed

func (*Client) DeleteAnnotationByRegionID

func (c *Client) DeleteAnnotationByRegionID(id int64) (string, error)

DeleteAnnotationByRegionID deletes the annotation corresponding to the region ID it is passed

func (*Client) DeleteBuiltInRoleAssignment

func (c *Client) DeleteBuiltInRoleAssignment(builtInRole BuiltInRoleAssignment) error

DeleteBuiltInRoleAssignment remove the built-in role assignments. Available only in Grafana Enterprise 8.+.

func (*Client) DeleteDashboard

func (c *Client) DeleteDashboard(slug string) error

DeleteDashboard will be removed. Deprecated: Starting from Grafana v5.0. Use DeleteDashboardByUID instead.

func (*Client) DeleteDashboardByUID

func (c *Client) DeleteDashboardByUID(uid string) error

DeleteDashboardByUID deletes a dashboard by UID.

func (*Client) DeleteDataSource

func (c *Client) DeleteDataSource(id int64) error

DeleteDataSource deletes the Grafana data source whose ID it's passed.

func (*Client) DeleteFolder

func (c *Client) DeleteFolder(id string) error

DeleteFolder deletes the folder whose ID it's passed.

func (*Client) DeleteOrg

func (c *Client) DeleteOrg(id int64) error

DeleteOrg deletes the Grafana org whose ID it's passed.

func (*Client) DeletePlaylist

func (c *Client) DeletePlaylist(id int) error

DeletePlaylist deletes the Grafana playlist whose ID it's passed.

func (*Client) DeleteRole

func (c *Client) DeleteRole(uid string, global bool) error

DeleteRole deletes the role with it's permissions. Available only in Grafana Enterprise 8.+.

func (*Client) DeleteTeam

func (c *Client) DeleteTeam(id int64) error

DeleteTeam deletes the Grafana team whose ID it's passed.

func (*Client) DeleteTeamGroup

func (c *Client) DeleteTeamGroup(id int64, groupID string) error

DeleteTeam deletes the Grafana team whose ID it's passed.

func (*Client) DeleteUser

func (c *Client) DeleteUser(id int64) error

DeleteUser deletes a Grafana user.

func (*Client) Folder

func (c *Client) Folder(id int64) (*Folder, error)

Folder fetches and returns the Grafana folder whose ID it's passed.

func (*Client) FolderDashboardSearch

func (c *Client) FolderDashboardSearch(params map[string]string) (resp []FolderDashboardSearchResponse, err error)

FolderDashboardSearch uses the folder and dashboard search endpoint to find dashboards based on the params passed in.

func (*Client) FolderPermissions

func (c *Client) FolderPermissions(fid string) ([]*FolderPermission, error)

FolderPermissions fetches and returns the permissions for the folder whose ID it's passed.

func (*Client) Folders

func (c *Client) Folders() ([]Folder, error)

Folders fetches and returns Grafana folders.

func (*Client) GetBuiltInRoleAssignments

func (c *Client) GetBuiltInRoleAssignments() (map[string][]*Role, error)

GetBuiltInRoleAssignments gets all built-in role assignments. Available only in Grafana Enterprise 8.+.

func (*Client) GetRole

func (c *Client) GetRole(uid string) (*Role, error)

GetRole gets a role with permissions for the given UID. Available only in Grafana Enterprise 8.+.

func (*Client) NewAlertNotification

func (c *Client) NewAlertNotification(a *AlertNotification) (int64, error)

NewAlertNotification creates a new Grafana alert notification.

func (*Client) NewAnnotation

func (c *Client) NewAnnotation(a *Annotation) (int64, error)

NewAnnotation creates a new annotation with the Annotation it is passed

func (*Client) NewBuiltInRoleAssignment

func (c *Client) NewBuiltInRoleAssignment(builtInRoleAssignment BuiltInRoleAssignment) (*BuiltInRoleAssignment, error)

NewBuiltInRoleAssignment creates a new built-in role assignment. Available only in Grafana Enterprise 8.+.

func (*Client) NewDashboard

func (c *Client) NewDashboard(dashboard Dashboard) (*DashboardSaveResponse, error)

NewDashboard creates a new Grafana dashboard.

func (*Client) NewDataSource

func (c *Client) NewDataSource(s *DataSource) (int64, error)

NewDataSource creates a new Grafana data source.

func (*Client) NewFolder

func (c *Client) NewFolder(title string) (Folder, error)

NewFolder creates a new Grafana folder.

func (*Client) NewGraphiteAnnotation

func (c *Client) NewGraphiteAnnotation(gfa *GraphiteAnnotation) (int64, error)

NewGraphiteAnnotation creates a new annotation with the GraphiteAnnotation it is passed

func (*Client) NewOrg

func (c *Client) NewOrg(name string) (int64, error)

NewOrg creates a new Grafana org.

func (*Client) NewPlaylist

func (c *Client) NewPlaylist(playlist Playlist) (int, error)

NewPlaylist creates a new Grafana playlist.

func (*Client) NewRole

func (c *Client) NewRole(role Role) (*Role, error)

NewRole creates a new role with permissions. Available only in Grafana Enterprise 8.+.

func (*Client) NewTeamGroup

func (c *Client) NewTeamGroup(id int64, groupID string) error

NewTeamGroup creates a new Grafana Team Group .

func (*Client) Org

func (c *Client) Org(id int64) (Org, error)

Org fetches and returns the org whose ID it's passed.

func (*Client) OrgByName

func (c *Client) OrgByName(name string) (Org, error)

OrgByName fetches and returns the org whose name it's passed.

func (*Client) OrgUsers

func (c *Client) OrgUsers(orgID int64) ([]OrgUser, error)

OrgUsers fetches and returns the users for the org whose ID it's passed.

func (*Client) Orgs

func (c *Client) Orgs() ([]Org, error)

Orgs fetches and returns the Grafana orgs.

func (*Client) PatchAnnotation

func (c *Client) PatchAnnotation(id int64, a *Annotation) (string, error)

PatchAnnotation updates one or more properties of an existing annotation that matches the specified ID.

func (*Client) PauseAlert

func (c *Client) PauseAlert(id int64) (PauseAlertResponse, error)

PauseAlert pauses the Grafana alert whose ID it's passed.

func (*Client) PauseAllAlerts

func (c *Client) PauseAllAlerts() (PauseAllAlertsResponse, error)

PauseAllAlerts pauses all Grafana alerts.

func (*Client) Playlist

func (c *Client) Playlist(id int) (*Playlist, error)

Playlist fetches and returns a Grafana playlist.

func (*Client) RemoveMemberFromTeam

func (c *Client) RemoveMemberFromTeam(id int64, userID int64) error

RemoveMemberFromTeam removes a user from the Grafana team whose ID it's passed.

func (*Client) RemoveOrgUser

func (c *Client) RemoveOrgUser(orgID, userID int64) error

RemoveOrgUser removes a user from an org.

func (*Client) SaveDashboard

func (c *Client) SaveDashboard(model map[string]interface{}, overwrite bool) (*DashboardSaveResponse, error)

SaveDashboard is a deprecated method for saving a Grafana dashboard. Use NewDashboard. Deprecated: Use NewDashboard instead.

func (*Client) SearchTeam

func (c *Client) SearchTeam(query string) (*SearchTeam, error)

SearchTeam searches Grafana teams and returns the results.

func (*Client) Team

func (c *Client) Team(id int64) (*Team, error)

Team fetches and returns the Grafana team whose ID it's passed.

func (*Client) TeamGroups

func (c *Client) TeamGroups(id int64) ([]TeamGroup, error)

TeamGroups fetches and returns the list of Grafana team group whose Team ID it's passed.

func (*Client) TeamMembers

func (c *Client) TeamMembers(id int64) ([]*TeamMember, error)

TeamMembers fetches and returns the team members for the Grafana team whose ID it's passed.

func (*Client) TeamPreferences

func (c *Client) TeamPreferences(id int64) (*Preferences, error)

TeamPreferences fetches and returns preferences for the Grafana team whose ID it's passed.

func (*Client) UpdateAlertNotification

func (c *Client) UpdateAlertNotification(a *AlertNotification) error

UpdateAlertNotification updates a Grafana alert notification.

func (*Client) UpdateAnnotation

func (c *Client) UpdateAnnotation(id int64, a *Annotation) (string, error)

UpdateAnnotation updates all properties an existing annotation with the Annotation it is passed.

func (*Client) UpdateDashboardPermissions

func (c *Client) UpdateDashboardPermissions(id int64, items *PermissionItems) error

UpdateDashboardPermissions remove existing permissions if items are not included in the request.

func (*Client) UpdateDataSource

func (c *Client) UpdateDataSource(s *DataSource) error

UpdateDataSource updates a Grafana data source.

func (*Client) UpdateFolder

func (c *Client) UpdateFolder(id string, name string) error

UpdateFolder updates the folder whose ID it's passed.

func (*Client) UpdateFolderPermissions

func (c *Client) UpdateFolderPermissions(fid string, items *PermissionItems) error

UpdateFolderPermissions remove existing permissions if items are not included in the request.

func (*Client) UpdateOrg

func (c *Client) UpdateOrg(id int64, name string) error

UpdateOrg updates a Grafana org.

func (*Client) UpdateOrgUser

func (c *Client) UpdateOrgUser(orgID, userID int64, role string) error

UpdateOrgUser updates and org user.

func (*Client) UpdatePlaylist

func (c *Client) UpdatePlaylist(playlist Playlist) error

UpdatePlaylist updates a Grafana playlist.

func (*Client) UpdateRole

func (c *Client) UpdateRole(role Role) error

UpdateRole updates the role and permissions. Available only in Grafana Enterprise 8.+.

func (*Client) UpdateTeam

func (c *Client) UpdateTeam(id int64, name string, email string) error

UpdateTeam updates a Grafana team.

func (*Client) UpdateTeamPreferences

func (c *Client) UpdateTeamPreferences(id int64, preferences Preferences) error

UpdateTeamPreferences updates team preferences for the Grafana team whose ID it's passed.

func (*Client) UpdateUserPassword

func (c *Client) UpdateUserPassword(id int64, password string) error

UpdateUserPassword updates a user password.

func (*Client) UpdateUserPermissions

func (c *Client) UpdateUserPermissions(id int64, isAdmin bool) error

UpdateUserPermissions sets a user's admin status.

func (*Client) User

func (c *Client) User(id int64) (user User, err error)

User fetches a user by ID.

func (*Client) UserByEmail

func (c *Client) UserByEmail(email string) (user User, err error)

UserByEmail fetches a user by email address.

func (*Client) UserUpdate

func (c *Client) UserUpdate(u User) error

UserUpdate updates a user by ID.

func (*Client) Users

func (c *Client) Users() (users []UserSearch, err error)

Users fetches and returns Grafana users.

type Config

type Config struct {
	// APIKey is an optional API key.
	APIKey string
	// BasicAuth is optional basic auth credentials.
	BasicAuth *url.Userinfo
	// Client provides an optional HTTP client, otherwise a default will be used.
	Client *http.Client
	// OrgID provides an optional organization ID, ignored when using APIKey, BasicAuth defaults to last used org
	OrgID int64
}

Config contains client configuration.

type Dashboard

type Dashboard struct {
	Meta      DashboardMeta          `json:"meta"`
	Model     map[string]interface{} `json:"dashboard"`
	Folder    int64                  `json:"folderId"`
	Overwrite bool                   `json:"overwrite"`
}

Dashboard represents a Grafana dashboard.

type DashboardMeta

type DashboardMeta struct {
	IsStarred bool   `json:"isStarred"`
	Slug      string `json:"slug"`
	Folder    int64  `json:"folderId"`
}

DashboardMeta represents Grafana dashboard meta.

type DashboardPermission

type DashboardPermission struct {
	DashboardID  int64  `json:"dashboardId"`
	DashboardUID string `json:"uid"`
	UserID       int64  `json:"userId"`
	TeamID       int64  `json:"teamId"`
	Role         string `json:"role"`
	IsFolder     bool   `json:"isFolder"`
	Inherited    bool   `json:"inherited"`

	// Permission levels are
	// 1 = View
	// 2 = Edit
	// 4 = Admin
	Permission     int64  `json:"permission"`
	PermissionName string `json:"permissionName"`
}

DashboardPermission has information such as a dashboard, user, team, role and permission.

type DashboardSaveResponse

type DashboardSaveResponse struct {
	Slug    string `json:"slug"`
	ID      int64  `json:"id"`
	UID     string `json:"uid"`
	Status  string `json:"status"`
	Version int64  `json:"version"`
}

DashboardSaveResponse represents the Grafana API response to creating or saving a dashboard.

type DataSource

type DataSource struct {
	ID     int64  `json:"id,omitempty"`
	Name   string `json:"name"`
	Type   string `json:"type"`
	URL    string `json:"url"`
	Access string `json:"access"`

	Database string `json:"database,omitempty"`
	User     string `json:"user,omitempty"`
	// Deprecated: Use secureJsonData.password instead.
	Password string `json:"password,omitempty"`

	OrgID     int64 `json:"orgId,omitempty"`
	IsDefault bool  `json:"isDefault"`

	BasicAuth     bool   `json:"basicAuth"`
	BasicAuthUser string `json:"basicAuthUser,omitempty"`
	// Deprecated: Use secureJsonData.basicAuthPassword instead.
	BasicAuthPassword string `json:"basicAuthPassword,omitempty"`

	JSONData       JSONData       `json:"jsonData,omitempty"`
	SecureJSONData SecureJSONData `json:"secureJsonData,omitempty"`
}

DataSource represents a Grafana data source.

type Folder

type Folder struct {
	ID    int64  `json:"id"`
	UID   string `json:"uid"`
	Title string `json:"title"`
}

Folder represents a Grafana folder.

type FolderDashboardSearchResponse

type FolderDashboardSearchResponse struct {
	ID          uint     `json:"id"`
	UID         string   `json:"uid"`
	Title       string   `json:"title"`
	URI         string   `json:"uri"`
	URL         string   `json:"url"`
	Slug        string   `json:"slug"`
	Type        string   `json:"type"`
	Tags        []string `json:"tags"`
	IsStarred   bool     `json:"isStarred"`
	FolderID    uint     `json:"folderId"`
	FolderUID   string   `json:"folderUid"`
	FolderTitle string   `json:"folderTitle"`
	FolderURL   string   `json:"folderUrl"`
}

FolderDashboardSearchResponse represents the Grafana API dashboard search response.

type FolderPermission

type FolderPermission struct {
	ID        int64  `json:"id"`
	FolderUID string `json:"uid"`
	UserID    int64  `json:"userId"`
	TeamID    int64  `json:"teamId"`
	Role      string `json:"role"`
	IsFolder  bool   `json:"isFolder"`

	// Permission levels are
	// 1 = View
	// 2 = Edit
	// 4 = Admin
	Permission     int64  `json:"permission"`
	PermissionName string `json:"permissionName"`

	// optional fields
	FolderID    int64 `json:"folderId,omitempty"`
	DashboardID int64 `json:"dashboardId,omitempty"`
}

FolderPermission has information such as a folder, user, team, role and permission.

type GraphiteAnnotation

type GraphiteAnnotation struct {
	What string   `json:"what"`
	When int64    `json:"when"`
	Data string   `json:"data"`
	Tags []string `json:"tags,omitempty"`
}

GraphiteAnnotation represents a Grafana API annotation in Graphite format

type JSONData

type JSONData struct {
	// Used by all datasources
	TLSAuth           bool `json:"tlsAuth,omitempty"`
	TLSAuthWithCACert bool `json:"tlsAuthWithCACert,omitempty"`
	TLSSkipVerify     bool `json:"tlsSkipVerify,omitempty"`

	// Used by Graphite
	GraphiteVersion string `json:"graphiteVersion,omitempty"`

	// Used by Prometheus, Elasticsearch, InfluxDB, MySQL, PostgreSQL and MSSQL
	TimeInterval string `json:"timeInterval,omitempty"`

	// Used by Elasticsearch
	EsVersion                  int64  `json:"esVersion,omitempty"`
	TimeField                  string `json:"timeField,omitempty"`
	Interval                   string `json:"interval,omitempty"`
	LogMessageField            string `json:"logMessageField,omitempty"`
	LogLevelField              string `json:"logLevelField,omitempty"`
	MaxConcurrentShardRequests int64  `json:"maxConcurrentShardRequests,omitempty"`

	// Used by Cloudwatch
	AuthType                string `json:"authType,omitempty"`
	AssumeRoleArn           string `json:"assumeRoleArn,omitempty"`
	DefaultRegion           string `json:"defaultRegion,omitempty"`
	CustomMetricsNamespaces string `json:"customMetricsNamespaces,omitempty"`
	Profile                 string `json:"profile,omitempty"`

	// Used by OpenTSDB
	TsdbVersion    string `json:"tsdbVersion,omitempty"`
	TsdbResolution string `json:"tsdbResolution,omitempty"`

	// Used by MSSQL
	Encrypt string `json:"encrypt,omitempty"`

	// Used by PostgreSQL
	Sslmode         string `json:"sslmode,omitempty"`
	PostgresVersion int64  `json:"postgresVersion,omitempty"`
	Timescaledb     bool   `json:"timescaledb,omitempty"`

	// Used by MySQL, PostgreSQL and MSSQL
	MaxOpenConns    int64 `json:"maxOpenConns,omitempty"`
	MaxIdleConns    int64 `json:"maxIdleConns,omitempty"`
	ConnMaxLifetime int64 `json:"connMaxLifetime,omitempty"`

	// Used by Prometheus
	HTTPMethod   string `json:"httpMethod,omitempty"`
	QueryTimeout string `json:"queryTimeout,omitempty"`

	// Used by Stackdriver
	AuthenticationType string `json:"authenticationType,omitempty"`
	ClientEmail        string `json:"clientEmail,omitempty"`
	DefaultProject     string `json:"defaultProject,omitempty"`
	TokenURI           string `json:"tokenUri,omitempty"`
}

JSONData is a representation of the datasource `jsonData` property

type Org

type Org struct {
	ID   int64  `json:"id"`
	Name string `json:"name"`
}

Org represents a Grafana org.

type OrgUser

type OrgUser struct {
	OrgID  int64  `json:"orgId"`
	UserID int64  `json:"userId"`
	Email  string `json:"email"`
	Login  string `json:"login"`
	Role   string `json:"role"`
}

OrgUser represents a Grafana org user.

type PauseAlertRequest

type PauseAlertRequest struct {
	Paused bool `json:"paused"`
}

PauseAlertRequest represents the request payload for a PauseAlert request.

type PauseAlertResponse

type PauseAlertResponse struct {
	AlertID int64  `json:"alertId,omitempty"`
	State   string `json:"state,omitempty"`
	Message string `json:"message,omitempty"`
}

PauseAlertResponse represents the response body for a PauseAlert request.

type PauseAllAlertsResponse

type PauseAllAlertsResponse struct {
	AlertsAffected int64  `json:"alertsAffected,omitempty"`
	State          string `json:"state,omitempty"`
	Message        string `json:"message,omitempty"`
}

PauseAllAlertsResponse represents the response body for a PauseAllAlerts request.

type Permission

type Permission struct {
	Action string `json:"action"`
	Scope  string `json:"scope"`
}

type PermissionItem

type PermissionItem struct {
	// As you can see the docs, each item has a pair of [Role|TeamID|UserID] and Permission.
	// unnecessary fields are omitted.
	Role       string `json:"role,omitempty"`
	TeamID     int64  `json:"teamId,omitempty"`
	UserID     int64  `json:"userId,omitempty"`
	Permission int64  `json:"permission"`
}

PermissionItem represents a Grafana folder permission item.

type PermissionItems

type PermissionItems struct {
	Items []*PermissionItem `json:"items"`
}

PermissionItems represents Grafana folder permission items.

type Playlist

type Playlist struct {
	ID       int            `json:"id"`
	Name     string         `json:"name"`
	Interval string         `json:"interval"`
	Items    []PlaylistItem `json:"items"`
}

Playlist represents a Grafana playlist.

type PlaylistItem

type PlaylistItem struct {
	Type  string `json:"type"`
	Value string `json:"value"`
	Order int    `json:"order"`
	Title string `json:"title"`
}

PlaylistItem represents a Grafana playlist item.

type Preferences

type Preferences struct {
	Theme           string `json:"theme"`
	HomeDashboardID int64  `json:"homeDashboardID"`
	Timezone        string `json:"timezone"`
}

Preferences represents Grafana preferences.

type Role

type Role struct {
	Version     int64        `json:"version"`
	UID         string       `json:"uid,omitempty"`
	Name        string       `json:"name"`
	Description string       `json:"description"`
	Global      bool         `json:"global"`
	Permissions []Permission `json:"permissions,omitempty"`
}

type SearchTeam

type SearchTeam struct {
	TotalCount int64   `json:"totalCount,omitempty"`
	Teams      []*Team `json:"teams,omitempty"`
	Page       int64   `json:"page,omitempty"`
	PerPage    int64   `json:"perPage,omitempty"`
}

SearchTeam represents a search for a Grafana team.

type SecureJSONData

type SecureJSONData struct {
	// Used by all datasources
	TLSCACert         string `json:"tlsCACert,omitempty"`
	TLSClientCert     string `json:"tlsClientCert,omitempty"`
	TLSClientKey      string `json:"tlsClientKey,omitempty"`
	Password          string `json:"password,omitempty"`
	BasicAuthPassword string `json:"basicAuthPassword,omitempty"`

	// Used by Cloudwatch
	AccessKey string `json:"accessKey,omitempty"`
	SecretKey string `json:"secretKey,omitempty"`

	// Used by Stackdriver
	PrivateKey string `json:"privateKey,omitempty"`
}

SecureJSONData is a representation of the datasource `secureJsonData` property

type Team

type Team struct {
	ID          int64  `json:"id,omitempty"`
	OrgID       int64  `json:"orgId,omitempty"`
	Name        string `json:"name"`
	Email       string `json:"email,omitempty"`
	AvatarURL   string `json:"avatarUrl,omitempty"`
	MemberCount int64  `json:"memberCount,omitempty"`
	Permission  int64  `json:"permission,omitempty"`
}

Team consists of a get response It's used in Add and Update API

type TeamGroup

type TeamGroup struct {
	OrgID   int64  `json:"orgId,omitempty"`
	TeamID  int64  `json:"teamId,omitempty"`
	GroupID string `json:"groupID,omitempty"`
}

TeamGroup represents a Grafana TeamGroup.

type TeamMember

type TeamMember struct {
	OrgID      int64  `json:"orgId,omitempty"`
	TeamID     int64  `json:"teamId,omitempty"`
	UserID     int64  `json:"userID,omitempty"`
	Email      string `json:"email,omitempty"`
	Login      string `json:"login,omitempty"`
	AvatarURL  string `json:"avatarUrl,omitempty"`
	Permission int64  `json:"permission,omitempty"`
}

TeamMember represents a Grafana team member.

type User

type User struct {
	ID         int64     `json:"id,omitempty"`
	Email      string    `json:"email,omitempty"`
	Name       string    `json:"name,omitempty"`
	Login      string    `json:"login,omitempty"`
	Theme      string    `json:"theme,omitempty"`
	OrgID      int64     `json:"orgId,omitempty"`
	IsAdmin    bool      `json:"isGrafanaAdmin,omitempty"`
	IsDisabled bool      `json:"isDisabled,omitempty"`
	IsExternal bool      `json:"isExternal,omitempty"`
	UpdatedAt  time.Time `json:"updatedAt,omitempty"`
	CreatedAt  time.Time `json:"createdAt,omitempty"`
	AuthLabels []string  `json:"authLabels,omitempty"`
	AvatarURL  string    `json:"avatarUrl,omitempty"`
	Password   string    `json:"password,omitempty"`
}

User represents a Grafana user. It is structured after the UserProfileDTO struct in the Grafana codebase.

type UserSearch

type UserSearch struct {
	ID            int64     `json:"id,omitempty"`
	Email         string    `json:"email,omitempty"`
	Name          string    `json:"name,omitempty"`
	Login         string    `json:"login,omitempty"`
	IsAdmin       bool      `json:"isAdmin,omitempty"`
	IsDisabled    bool      `json:"isDisabled,omitempty"`
	LastSeenAt    time.Time `json:"lastSeenAt,omitempty"`
	LastSeenAtAge string    `json:"lastSeenAtAge,omitempty"`
	AuthLabels    []string  `json:"authLabels,omitempty"`
	AvatarURL     string    `json:"avatarUrl,omitempty"`
}

UserSearch represents a Grafana user as returned by API endpoints that return a collection of Grafana users. This representation of user has reduced and differing fields. It is structured after the UserSearchHitDTO struct in the Grafana codebase.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL