gapi

package module
v0.9.4 Latest Latest
Warning

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

Go to latest
Published: Aug 17, 2022 License: Apache-2.0 Imports: 16 Imported by: 0

README

Grafana HTTP API Client for Go

This library provides a low-level client to access Grafana HTTP API.

⚠ This repository is still active but not under heavy development. Contributions to this library offering support for the Terraform provider for Grafana will be prioritized over generic ones.

Tests

To run the tests:

go test

Documentation

Index

Constants

View Source
const (
	ErrOK          ExecErrState = "OK"
	ErrError       ExecErrState = "Error"
	ErrAlerting    ExecErrState = "Alerting"
	NoDataOk       NoDataState  = "OK"
	NoData         NoDataState  = "NoData"
	NoDataAlerting NoDataState  = "Alerting"
)

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. Deprecated: Grafana Legacy Alerting is deprecated as of 9.0 and will be removed in the future. Use ContactPoint instead.

type AlertQuery

type AlertQuery struct {
	DatasourceUID     string            `json:"datasourceUid,omitempty"`
	Model             interface{}       `json:"model"`
	QueryType         string            `json:"queryType,omitempty"`
	RefID             string            `json:"refId,omitempty"`
	RelativeTimeRange RelativeTimeRange `json:"relativeTimeRange"`
}

AlertQuery represents a single query stage associated with an alert definition.

type AlertRule

type AlertRule struct {
	Annotations  map[string]string `json:"annotations,omitempty"`
	Condition    string            `json:"condition"`
	Data         []*AlertQuery     `json:"data"`
	ExecErrState ExecErrState      `json:"execErrState"`
	FolderUID    string            `json:"folderUid"`
	ID           int64             `json:"id,omitempty"`
	Labels       map[string]string `json:"labels,omitempty"`
	NoDataState  NoDataState       `json:"noDataState"`
	OrgID        int64             `json:"orgId"`
	RuleGroup    string            `json:"ruleGroup"`
	Title        string            `json:"title"`
	UID          string            `json:"uid,omitempty"`
	Updated      time.Time         `json:"updated"`
	For          string            `json:"for"`
	ForDuration  time.Duration     `json:"-"`
	Provenance   string            `json:"provenance"`
}

AlertRule represents a Grafana Alert Rule.

type AlertingMessageTemplate

type AlertingMessageTemplate struct {
	Name     string `json:"name"`
	Template string `json:"template"`
}

AlertingMessageTemplate is a re-usable template for Grafana Alerting messages.

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) AddDatasourcePermission

func (c *Client) AddDatasourcePermission(id int64, item *DatasourcePermissionAddPayload) error

AddDatasourcePermission adds the given permission item

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. Deprecated: Grafana Legacy Alerting is deprecated as of 9.0 and will be removed in the future. Use ContactPoint instead.

func (*Client) AlertNotifications

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

AlertNotifications fetches and returns Grafana alert notifications. Deprecated: Grafana Legacy Alerting is deprecated as of 9.0 and will be removed in the future. Use ContactPoints instead.

func (*Client) AlertRule

func (c *Client) AlertRule(uid string) (AlertRule, error)

AlertRule fetches a single alert rule, identified by its UID.

func (*Client) AlertRuleGroup

func (c *Client) AlertRuleGroup(folderUID string, name string) (RuleGroup, error)

AlertRuleGroup fetches a group of alert rules, identified by its name and the UID of its folder.

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) ContactPoint

func (c *Client) ContactPoint(uid string) (ContactPoint, error)

ContactPoint fetches a single contact point, identified by its UID.

func (*Client) ContactPoints

func (c *Client) ContactPoints() ([]ContactPoint, error)

ContactPoints fetches all contact points.

func (*Client) ContactPointsByName

func (c *Client) ContactPointsByName(name string) ([]ContactPoint, error)

ContactPointsByName fetches contact points with the given name.

func (*Client) CreateAPIKey

func (c *Client) CreateAPIKey(request CreateAPIKeyRequest) (CreateAPIKeyResponse, error)

CreateAPIKey creates a new Grafana API key.

func (*Client) CreateCloudAPIKey

func (c *Client) CreateCloudAPIKey(org string, input *CreateCloudAPIKeyInput) (*CloudAPIKey, error)

func (*Client) CreateGrafanaAPIKeyFromCloud

func (c *Client) CreateGrafanaAPIKeyFromCloud(stack string, input *CreateAPIKeyRequest) (*CreateAPIKeyResponse, error)

This function creates a API key inside the Grafana instance running in stack `stack`. It's used in order to provision API keys inside Grafana while just having access to a Grafana Cloud API key.

See https://grafana.com/docs/grafana-cloud/api/#create-grafana-api-keys for more information.

func (*Client) CreateServiceAccount

func (c *Client) CreateServiceAccount(request CreateServiceAccountRequest) (*ServiceAccountDTO, error)

CreateServiceAccount creates a new Grafana service account.

func (*Client) CreateServiceAccountToken

func (c *Client) CreateServiceAccountToken(request CreateServiceAccountTokenRequest) (*CreateServiceAccountTokenResponse, error)

CreateServiceAccountToken creates a new Grafana service account token.

func (*Client) CreateTemporaryStackGrafanaClient

func (c *Client) CreateTemporaryStackGrafanaClient(stackSlug, tempKeyPrefix string, tempKeyDuration time.Duration) (tempClient *Client, cleanup func() error, err error)

The Grafana Cloud API is disconnected from the Grafana API on the stacks unfortunately. That's why we can't use the Grafana Cloud API key to fully manage API keys on the Grafana API. The only thing we can do is to create a temporary Admin key, and create a Grafana API client with that.

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) DashboardsByIDs

func (c *Client) DashboardsByIDs(ids []int64) ([]FolderDashboardSearchResponse, error)

DashboardsByIDs uses the folder and dashboard search endpoint to find dashboards by list of dashboard IDs.

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) DataSourceByUID

func (c *Client) DataSourceByUID(uid string) (*DataSource, error)

DataSourceByUID fetches and returns the Grafana data source whose UID is passed.

func (*Client) DataSourceIDByName

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

DataSourceIDByName returns the Grafana data source ID by name.

func (*Client) DataSources

func (c *Client) DataSources() ([]*DataSource, error)

DataSources returns all data sources as defined in Grafana.

func (*Client) DatasourcePermissions

func (c *Client) DatasourcePermissions(id int64) (*DatasourcePermissionsResponse, error)

DatasourcePermissions fetches and returns the permissions for the datasource whose ID it's passed.

func (*Client) DeleteAPIKey

func (c *Client) DeleteAPIKey(id int64) (DeleteAPIKeyResponse, error)

DeleteAPIKey deletes the Grafana API key with the specified ID.

func (*Client) DeleteAlertNotification

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

DeleteAlertNotification deletes a Grafana alert notification. Deprecated: Grafana Legacy Alerting is deprecated as of 9.0 and will be removed in the future. Use DeleteContactPoint instead.

func (*Client) DeleteAlertRule

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

DeleteAlertRule deletes a alert rule, identified by the alert rule's UID.

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) DeleteCloudAPIKey

func (c *Client) DeleteCloudAPIKey(org string, keyName string) error

func (*Client) DeleteContactPoint

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

DeleteContactPoint deletes a contact point.

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) DeleteLibraryPanel

func (c *Client) DeleteLibraryPanel(uid string) (*LibraryPanelDeleteResponse, error)

DeleteLibraryPanel deletes a panel by UID.

func (*Client) DeleteMessageTemplate

func (c *Client) DeleteMessageTemplate(name string) error

DeleteMessageTemplate deletes a message template.

func (*Client) DeleteMuteTiming

func (c *Client) DeleteMuteTiming(name string) error

DeleteMutetiming deletes a mute timing.

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(idOrUID string) error

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

func (*Client) DeleteReport

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

DeleteReport deletes the Grafana report 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) DeleteServiceAccount

func (c *Client) DeleteServiceAccount(serviceAccountID int64) (*DeleteServiceAccountResponse, error)

DeleteServiceAccount deletes the Grafana service account with the specified ID.

func (*Client) DeleteServiceAccountToken

func (c *Client) DeleteServiceAccountToken(serviceAccountID, tokenID int64) (*DeleteServiceAccountResponse, error)

DeleteServiceAccountToken deletes the Grafana service account token with the specified ID.

func (*Client) DeleteStack

func (c *Client) DeleteStack(stackSlug string) error

DeleteStack deletes the Grafana stack whose slug it passed in.

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) DisableDatasourcePermissions

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

DisableDatasourcePermissions disables the datasource permissions (this is a datasource setting)

func (*Client) EnableDatasourcePermissions

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

EnableDatasourcePermissions enables the datasource permissions (this is a datasource setting)

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) FolderByUID

func (c *Client) FolderByUID(uid string) (*Folder, error)

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

func (*Client) FolderDashboardSearch

func (c *Client) FolderDashboardSearch(params url.Values) (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) GetAPIKeys

func (c *Client) GetAPIKeys(includeExpired bool) ([]*GetAPIKeysResponse, error)

GetAPIKeys retrieves a list of all API keys.

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) GetCloudPluginInstallation

func (c *Client) GetCloudPluginInstallation(stackSlug string, pluginSlug string) (*CloudPluginInstallation, error)

GetCloudPluginInstallation returns the cloud plugin installation details for the specified plugin.

func (*Client) GetCloudRegionBySlug

func (c *Client) GetCloudRegionBySlug(slug string) (CloudRegion, error)

GetCloudRegionBySlug fetches and returns the cloud region which matches the given slug. You can also provide a numeric region ID.

func (*Client) GetCloudRegions

func (c *Client) GetCloudRegions() (CloudRegionsResponse, error)

GetCloudRegions fetches and returns all Grafana Cloud regions.

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) GetServiceAccountTokens

func (c *Client) GetServiceAccountTokens(serviceAccountID int64) ([]GetServiceAccountTokensResponse, error)

GetServiceAccountTokens retrieves a list of all service account tokens for a specific service account.

func (*Client) GetServiceAccounts

func (c *Client) GetServiceAccounts() ([]ServiceAccountDTO, error)

GetServiceAccounts retrieves a list of all service accounts for the organization.

func (*Client) InstallCloudPlugin

func (c *Client) InstallCloudPlugin(stackSlug string, pluginSlug string, pluginVersion string) (*CloudPluginInstallation, error)

InstallCloudPlugin installs the specified plugin to the given stack.

func (*Client) IsCloudPluginInstalled

func (c *Client) IsCloudPluginInstalled(stackSlug string, pluginSlug string) (bool, error)

IsCloudPluginInstalled returns a boolean if the specified plugin is installed on the stack.

func (*Client) LibraryPanelByName

func (c *Client) LibraryPanelByName(name string) (*LibraryPanel, error)

LibraryPanelByName gets a library panel by name.

func (*Client) LibraryPanelByUID

func (c *Client) LibraryPanelByUID(uid string) (*LibraryPanel, error)

LibraryPanelByUID gets a library panel by UID.

func (*Client) LibraryPanelConnectedDashboards

func (c *Client) LibraryPanelConnectedDashboards(uid string) ([]FolderDashboardSearchResponse, error)

LibraryPanelConnectedDashboards gets Dashboards using this Library Panel.

func (*Client) LibraryPanelConnections

func (c *Client) LibraryPanelConnections(uid string) (*[]LibraryPanelConnection, error)

LibraryPanelConnections gets library panel connections by UID.

func (*Client) LibraryPanels

func (c *Client) LibraryPanels() ([]LibraryPanel, error)

Dashboards fetches and returns all dashboards.

func (*Client) ListCloudAPIKeys

func (c *Client) ListCloudAPIKeys(org string) (*ListCloudAPIKeysOutput, error)

func (*Client) MessageTemplate

func (c *Client) MessageTemplate(name string) (*AlertingMessageTemplate, error)

MessageTemplate fetches a single message template, identified by its name.

func (*Client) MessageTemplates

func (c *Client) MessageTemplates() ([]AlertingMessageTemplate, error)

MessageTemplates fetches all message templates.

func (*Client) MuteTiming

func (c *Client) MuteTiming(name string) (MuteTiming, error)

MuteTiming fetches a single mute timing, identified by its name.

func (*Client) MuteTimings

func (c *Client) MuteTimings() ([]MuteTiming, error)

MuteTimings fetches all mute timings.

func (*Client) NewAlertNotification

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

NewAlertNotification creates a new Grafana alert notification. Deprecated: Grafana Legacy Alerting is deprecated as of 9.0 and will be removed in the future. Use NewContactPoint instead.

func (*Client) NewAlertRule

func (c *Client) NewAlertRule(ar *AlertRule) (string, error)

NewAlertRule creates a new alert rule and returns its UID.

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) NewContactPoint

func (c *Client) NewContactPoint(p *ContactPoint) (string, error)

NewContactPoint creates a new contact point.

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) NewDataSourceFromRawData

func (c *Client) NewDataSourceFromRawData(data []byte) (int64, error)

NewDataSource creates a new Grafana data source from raw data.

func (*Client) NewFolder

func (c *Client) NewFolder(title string, uid ...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) NewLibraryPanel

func (c *Client) NewLibraryPanel(panel LibraryPanel) (*LibraryPanel, error)

NewLibraryPanel creates a new Grafana library panel.

func (*Client) NewMuteTiming

func (c *Client) NewMuteTiming(mt *MuteTiming) error

NewMuteTiming creates a new mute timing.

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) (string, error)

NewPlaylist creates a new Grafana playlist.

func (*Client) NewReport

func (c *Client) NewReport(report Report) (int64, error)

NewReport creates a new Grafana report.

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) NewSnapshot

func (c *Client) NewSnapshot(snapshot Snapshot) (*SnapshotCreateResponse, error)

NewSnapshot creates a new Grafana snapshot.

func (*Client) NewStack

func (c *Client) NewStack(stack *CreateStackInput) (int64, error)

NewStack creates a new Grafana Stack

func (*Client) NewTeamGroup

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

NewTeamGroup creates a new Grafana Team Group .

func (*Client) NotificationPolicyTree

func (c *Client) NotificationPolicyTree() (NotificationPolicyTree, error)

NotificationPolicy fetches the notification policy tree.

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) OrgUsersCurrent

func (c *Client) OrgUsersCurrent() ([]OrgUser, error)

OrgUsersCurrent returns all org users within the current organization. This endpoint is accessible to users with org admin role.

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) PatchLibraryPanel

func (c *Client) PatchLibraryPanel(uid string, panel LibraryPanel) (*LibraryPanel, error)

PatchLibraryPanel updates one or more properties of an existing panel that matches the specified UID.

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(idOrUID string) (*Playlist, error)

Playlist fetches and returns a Grafana playlist.

func (*Client) PluginByID

func (c *Client) PluginByID(pluginID int64) (*Plugin, error)

PluginByID returns the plugin with the given id. An error will be returned given an unknown ID.

func (*Client) PluginBySlug

func (c *Client) PluginBySlug(slug string) (*Plugin, error)

PluginBySlug returns the plugin with the given slug. An error will be returned given an unknown slug.

func (*Client) RemoveDatasourcePermission

func (c *Client) RemoveDatasourcePermission(id, permissionID int64) error

RemoveDatasourcePermission removes the permission with the given id

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) Report

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

Report fetches and returns a Grafana report.

func (*Client) ResetNotificationPolicyTree

func (c *Client) ResetNotificationPolicyTree() error

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) SetAlertRuleGroup

func (c *Client) SetAlertRuleGroup(group RuleGroup) error

SetAlertRuleGroup overwrites an existing rule group on the server.

func (*Client) SetMessageTemplate

func (c *Client) SetMessageTemplate(name, content string) error

SetMessageTemplate creates or updates a message template.

func (*Client) SetNotificationPolicyTree

func (c *Client) SetNotificationPolicyTree(np *NotificationPolicyTree) error

SetNotificationPolicy sets the notification policy tree.

func (*Client) StackByID

func (c *Client) StackByID(id int64) (Stack, error)

StackByID fetches and returns the stack whose name it's passed. This returns deleted instances as well with `status=deleted`.

func (*Client) StackBySlug

func (c *Client) StackBySlug(slug string) (Stack, error)

StackByName fetches and returns the stack whose slug it's passed.

func (*Client) Stacks

func (c *Client) Stacks() (StackItems, error)

Stacks fetches and returns the Grafana stacks.

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) UninstallCloudPlugin

func (c *Client) UninstallCloudPlugin(stackSlug string, pluginSlug string) error

UninstallCloudPlugin uninstalls the specified plugin to the given stack.

func (*Client) UpdateAlertNotification

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

UpdateAlertNotification updates a Grafana alert notification. Deprecated: Grafana Legacy Alerting is deprecated as of 9.0 and will be removed in the future. Use UpdateContactPoint instead.

func (*Client) UpdateAlertRule

func (c *Client) UpdateAlertRule(ar *AlertRule) error

UpdateAlertRule replaces an alert rule, identified by the alert rule's UID.

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) UpdateContactPoint

func (c *Client) UpdateContactPoint(p *ContactPoint) error

UpdateContactPoint replaces a contact point, identified by contact point's UID.

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) UpdateDataSourceFromRawData

func (c *Client) UpdateDataSourceFromRawData(id int64, data []byte) error

UpdateDataSource updates a Grafana data source.

func (*Client) UpdateFolder

func (c *Client) UpdateFolder(uid string, title string, newUID ...string) error

UpdateFolder updates the folder whose UID 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) UpdateMuteTiming

func (c *Client) UpdateMuteTiming(mt *MuteTiming) error

UpdateMuteTiming updates a mute timing.

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) UpdateReport

func (c *Client) UpdateReport(report Report) error

UpdateReport updates a Grafana report.

func (*Client) UpdateRole

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

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

func (*Client) UpdateServiceAccount

func (c *Client) UpdateServiceAccount(serviceAccountID int64, request UpdateServiceAccountRequest) (*ServiceAccountDTO, error)

UpdateServiceAccount updates a specific serviceAccountID

func (*Client) UpdateStack

func (c *Client) UpdateStack(id int64, stack *UpdateStackInput) error

UpdateOrg updates a Grafana stack. Only name, slug and description can be updated. No other parameters of the stack are updateable

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 CloudAPIKey

type CloudAPIKey struct {
	ID         int
	Name       string
	Role       string
	Token      string
	Expiration string
}

type CloudPluginInstallation

type CloudPluginInstallation struct {
	ID           int    `json:"id"`
	InstanceID   int    `json:"instanceId"`
	InstanceURL  string `json:"instanceUrl"`
	InstanceSlug string `json:"instanceSlug"`
	PluginID     int    `json:"pluginId"`
	PluginSlug   string `json:"pluginSlug"`
	PluginName   string `json:"pluginName"`
	Version      string `json:"version"`
}

type CloudRegion

type CloudRegion struct {
	ID          int    `json:"id"`
	Status      string `json:"status"`
	Slug        string `json:"slug"`
	Name        string `json:"name"`
	Description string `json:"description"`
	CreatedAt   string `json:"createdAt"`
	UpdatedAt   string `json:"updatedAt"`
	Visibility  string `json:"visibility"`

	// Service URLs for the region
	StackStateServiceURL      string `json:"stackStateServiceUrl"`
	SyntheticMonitoringAPIURL string `json:"syntheticMonitoringApiUrl"`
	IntegrationsAPIURL        string `json:"integrationsApiUrl"`
	HostedExportersAPIURL     string `json:"hostedExportersApiUrl"`
	MachineLearningAPIURL     string `json:"machineLearningApiUrl"`
	IncidentsAPIURL           string `json:"incidentsApiUrl"`

	// Hosted Grafana
	HGClusterID   int    `json:"hgClusterId"`
	HGClusterSlug string `json:"hgClusterSlug"`
	HGClusterName string `json:"hgClusterName"`
	HGClusterURL  string `json:"hgClusterUrl"`

	// Hosted Metrics: Prometheus
	HMPromClusterID   int    `json:"hmPromClusterId"`
	HMPromClusterSlug string `json:"hmPromClusterSlug"`
	HMPromClusterName string `json:"hmPromClusterName"`
	HMPromClusterURL  string `json:"hmPromClusterUrl"`

	// Hosted Metrics: Graphite
	HMGraphiteClusterID   int    `json:"hmGraphiteClusterId"`
	HMGraphiteClusterSlug string `json:"hmGraphiteClusterSlug"`
	HMGraphiteClusterName string `json:"hmGraphiteClusterName"`
	HMGraphiteClusterURL  string `json:"hmGraphiteClusterUrl"`

	// Hosted Logs
	HLClusterID   int    `json:"hlClusterId"`
	HLClusterSlug string `json:"hlClusterSlug"`
	HLClusterName string `json:"hlClusterName"`
	HLClusterURL  string `json:"hlClusterUrl"`

	// Alertmanager
	AMClusterID   int    `json:"amClusterId"`
	AMClusterSlug string `json:"amClusterSlug"`
	AMClusterName string `json:"amClusterName"`
	AMClusterURL  string `json:"amClusterUrl"`

	// Hosted Traces
	HTClusterID   int    `json:"htClusterId"`
	HTClusterSlug string `json:"htClusterSlug"`
	HTClusterName string `json:"htClusterName"`
	HTClusterURL  string `json:"htClusterUrl"`
}

CloudRegion represents a Grafana Cloud region. https://grafana.com/docs/grafana-cloud/reference/cloud-api/#list-regions

type CloudRegionsResponse

type CloudRegionsResponse struct {
	Items []CloudRegion `json:"items"`
}

CloudRegionsResponse represents the response from the Grafana Cloud regions API.

type Config

type Config struct {
	// APIKey is an optional API key.
	APIKey string
	// BasicAuth is optional basic auth credentials.
	BasicAuth *url.Userinfo
	// HTTPHeaders are optional HTTP headers.
	HTTPHeaders map[string]string
	// 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
	// NumRetries contains the number of attempted retries
	NumRetries int
}

Config contains client configuration.

type ContactPoint

type ContactPoint struct {
	UID                   string                 `json:"uid"`
	Name                  string                 `json:"name"`
	Type                  string                 `json:"type"`
	Settings              map[string]interface{} `json:"settings"`
	DisableResolveMessage bool                   `json:"disableResolveMessage"`
	Provenance            string                 `json:"provenance"`
}

ContactPoint represents a Grafana Alerting contact point.

type CreateAPIKeyRequest

type CreateAPIKeyRequest struct {
	Name          string `json:"name"`
	Role          string `json:"role"`
	SecondsToLive int64  `json:"secondsToLive,omitempty"`
}

type CreateAPIKeyResponse

type CreateAPIKeyResponse struct {
	// ID field only returned after Grafana v7.
	ID   int64  `json:"id,omitempty"`
	Name string `json:"name"`
	Key  string `json:"key"`
}

type CreateCloudAPIKeyInput

type CreateCloudAPIKeyInput struct {
	Name string `json:"name"`
	Role string `json:"role"`
}

type CreateServiceAccountRequest

type CreateServiceAccountRequest struct {
	Name       string `json:"name"`
	Role       string `json:"role,omitempty"`
	IsDisabled *bool  `json:"isDisabled,omitempty"`
}

CreateServiceAccountRequest is the request body for creating a new service account.

type CreateServiceAccountTokenRequest

type CreateServiceAccountTokenRequest struct {
	Name             string `json:"name"`
	ServiceAccountID int64  `json:"-"`
	SecondsToLive    int64  `json:"secondsToLive,omitempty"`
}

CreateServiceAccountTokenRequest represents the request body for creating a new service account token.

type CreateServiceAccountTokenResponse

type CreateServiceAccountTokenResponse struct {
	ID   int64  `json:"id"`
	Name string `json:"name"`
	Key  string `json:"key"`
}

CreateServiceAccountTokenResponse represents the response from the Grafana API when creating a service account token.

type CreateStackInput

type CreateStackInput struct {
	Name        string `json:"name"`
	Slug        string `json:"slug"`
	URL         string `json:"url"`
	Region      string `json:"region"`
	Description string `json:"description"`
}

type Dashboard

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

	// This is only used when creating a new dashboard, it will always be empty when getting a dashboard.
	Message string `json:"message"`
}

Dashboard represents a Grafana dashboard.

type DashboardMeta

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

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"`
	UID    string `json:"uid,omitempty"`
	Name   string `json:"name"`
	Type   string `json:"type"`
	URL    string `json:"url"`
	Access string `json:"access"`

	// This is only returned by the API. It can only be set through the `editable` attribute of provisioned data sources.
	ReadOnly bool `json:"readOnly"`

	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"`

	// Helper to read/write http headers
	HTTPHeaders map[string]string `json:"-"`

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

DataSource represents a Grafana data source.

func (*DataSource) MarshalJSON

func (ds *DataSource) MarshalJSON() ([]byte, error)

Marshal DataSource

func (*DataSource) UnmarshalJSON

func (ds *DataSource) UnmarshalJSON(b []byte) (err error)

Unmarshal DataSource

type DatasourcePermission

type DatasourcePermission struct {
	ID           int64  `json:"id"`
	DatasourceID int64  `json:"datasourceId"`
	UserID       int64  `json:"userId"`
	UserEmail    string `json:"userEmail"`
	TeamID       int64  `json:"teamId"`

	// Permission levels are
	// 1 = Query
	Permission     DatasourcePermissionType `json:"permission"`
	PermissionName string                   `json:"permissionName"`
}

DatasourcePermission has information such as a datasource, user, team, role and permission.

type DatasourcePermissionAddPayload

type DatasourcePermissionAddPayload struct {
	UserID     int64                    `json:"userId"`
	TeamID     int64                    `json:"teamId"`
	Permission DatasourcePermissionType `json:"permission"`
}

type DatasourcePermissionType

type DatasourcePermissionType int
const (
	DatasourcePermissionQuery DatasourcePermissionType
)

type DatasourcePermissionsResponse

type DatasourcePermissionsResponse struct {
	DatasourceID int64                   `json:"datasourceId"`
	Enabled      bool                    `json:"enabled"`
	Permissions  []*DatasourcePermission `json:"permissions"`
}

type DayOfMonthRange

type DayOfMonthRange string

A DayOfMonthRange is an inclusive range of days, 1-31, within a month, e.g. "1" or "14:16". Negative values can be used to represent days counting from the end of a month, e.g. "-1".

type DeleteAPIKeyResponse

type DeleteAPIKeyResponse struct {
	Message string `json:"message"`
}

type DeleteServiceAccountResponse

type DeleteServiceAccountResponse struct {
	Message string `json:"message"`
}

DeleteServiceAccountResponse represents the response from deleting a service account or a service account token.

type ExecErrState

type ExecErrState string

type Folder

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

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 FolderPayload

type FolderPayload struct {
	Title     string `json:"title"`
	UID       string `json:"uid,omitempty"`
	Overwrite bool   `json:"overwrite,omitempty"`
}

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 GetAPIKeysResponse

type GetAPIKeysResponse struct {
	ID         int64     `json:"id"`
	Name       string    `json:"name"`
	Role       string    `json:"role"`
	Expiration time.Time `json:"expiration,omitempty"`
}

type GetServiceAccountTokensResponse

type GetServiceAccountTokensResponse struct {
	ID                     int64      `json:"id"`
	Name                   string     `json:"name"`
	Created                time.Time  `json:"created,omitempty"`
	Expiration             *time.Time `json:"expiration,omitempty"`
	SecondsUntilExpiration *float64   `json:"secondsUntilExpiration,omitempty"`
	HasExpired             bool       `json:"hasExpired,omitempty"`
}

GetServiceAccountTokensResponse represents a Grafana service account token.

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"`
	TLSConfigurationMethod string `json:"tlsConfigurationMethod,omitempty"`
	TLSSkipVerify          bool   `json:"tlsSkipVerify,omitempty"`

	// Used by Athena
	Catalog        string `json:"catalog,omitempty"`
	Database       string `json:"database,omitempty"`
	OutputLocation string `json:"outputLocation,omitempty"`
	Workgroup      string `json:"workgroup,omitempty"`

	// Used by Github
	GitHubURL string `json:"githubUrl,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
	// From Grafana 8.x esVersion is the semantic version of Elasticsearch.
	EsVersion                  string `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"`
	XpackEnabled               bool   `json:"xpack"`

	// Used by Cloudwatch
	CustomMetricsNamespaces string `json:"customMetricsNamespaces,omitempty"`
	TracingDatasourceUID    string `json:"tracingDatasourceUid,omitempty"`

	// Used by Cloudwatch, Athena
	AuthType      string `json:"authType,omitempty"`
	AssumeRoleArn string `json:"assumeRoleArn,omitempty"`
	DefaultRegion string `json:"defaultRegion,omitempty"`
	Endpoint      string `json:"endpoint,omitempty"`
	ExternalID    string `json:"externalId,omitempty"`
	Profile       string `json:"profile,omitempty"`

	// Used by Loki
	DerivedFields []LokiDerivedField `json:"derivedFields,omitempty"`
	MaxLines      int                `json:"maxLines,omitempty"`

	// Used by OpenTSDB
	TsdbVersion    int64 `json:"tsdbVersion,omitempty"`
	TsdbResolution int64 `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"`

	// 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"`

	// Used by Prometheus and Elasticsearch
	SigV4AssumeRoleArn string `json:"sigV4AssumeRoleArn,omitempty"`
	SigV4Auth          bool   `json:"sigV4Auth"`
	SigV4AuthType      string `json:"sigV4AuthType,omitempty"`
	SigV4ExternalID    string `json:"sigV4ExternalID,omitempty"`
	SigV4Profile       string `json:"sigV4Profile,omitempty"`
	SigV4Region        string `json:"sigV4Region,omitempty"`

	// Used by Prometheus and Loki
	ManageAlerts    bool   `json:"manageAlerts"`
	AlertmanagerUID string `json:"alertmanagerUid,omitempty"`

	// Used by Alertmanager
	Implementation string `json:"implementation,omitempty"`

	// Used by Sentry
	OrgSlug string `json:"orgSlug,omitempty"`
	URL     string `json:"url,omitempty"` // Sentry is not using the datasource URL attribute

	// Used by InfluxDB
	DefaultBucket string `json:"defaultBucket,omitempty"`
	Organization  string `json:"organization,omitempty"`
	Version       string `json:"version,omitempty"`

	// Used by Azure Monitor
	AzureLogAnalyticsSameAs      bool   `json:"azureLogAnalyticsSameAs"`
	ClientID                     string `json:"clientId,omitempty"`
	CloudName                    string `json:"cloudName,omitempty"`
	LogAnalyticsClientID         string `json:"logAnalyticsClientId,omitempty"`
	LogAnalyticsDefaultWorkspace string `json:"logAnalyticsDefaultWorkspace,omitempty"`
	LogAnalyticsTenantID         string `json:"logAnalyticsTenantId,omitempty"`
	SubscriptionID               string `json:"subscriptionId,omitempty"`
	TenantID                     string `json:"tenantId,omitempty"`
	// contains filtered or unexported fields
}

JSONData is a representation of the datasource `jsonData` property

func (JSONData) MarshalJSON

func (jd JSONData) MarshalJSON() ([]byte, error)

Marshal JSONData

func (*JSONData) UnmarshalJSON

func (jd *JSONData) UnmarshalJSON(b []byte) (err error)

Unmarshal JSONData

type LibraryPanel

type LibraryPanel struct {
	Folder      int64                  `json:"folderId,omitempty"`
	Name        string                 `json:"name"`
	Model       map[string]interface{} `json:"model"`
	Type        string                 `json:"type,omitempty"`
	Description string                 `json:"description,omitempty"`
	ID          int64                  `json:"id,omitempty"`
	Kind        int64                  `json:"kind,omitempty"`
	OrgID       int64                  `json:"orgId,omitempty"`
	UID         string                 `json:"uid,omitempty"`
	Version     int64                  `json:"version,omitempty"`
	Meta        LibraryPanelMeta       `json:"meta,omitempty"`
}

LibraryPanel represents a Grafana library panel.

type LibraryPanelConnection

type LibraryPanelConnection struct {
	ID          int64                `json:"id"`
	Kind        int64                `json:"kind"`
	PanelID     int64                `json:"elementId"`
	DashboardID int64                `json:"connectionId"`
	Created     time.Time            `json:"created"`
	CreatedBy   LibraryPanelMetaUser `json:"createdBy"`
}

LibraryPanelConnection represents a Grafana connection between a library panel and a dashboard.

type LibraryPanelCreateResponse

type LibraryPanelCreateResponse struct {
	Result LibraryPanel `json:"result"`
}

LibraryPanelCreateResponse represents the Grafana API response to creating or saving a library panel.

type LibraryPanelDeleteResponse

type LibraryPanelDeleteResponse struct {
	Message string `json:"message"`
	ID      int64  `json:"id,omitempty"`
}

LibraryPanelDeleteResponse represents the Grafana API response to deleting a library panel.

type LibraryPanelGetAllResponse

type LibraryPanelGetAllResponse struct {
	TotalCount int64          `json:"totalCount"`
	Page       int64          `json:"page"`
	PerPage    int64          `json:"perPage"`
	Elements   []LibraryPanel `json:"elements"`
}

LibraryPanelGetAllResponse represents the Grafana API response to getting all library panels.

type LibraryPanelMeta

type LibraryPanelMeta struct {
	FolderName          string               `json:"folderName,,omitempty"`
	FolderUID           string               `json:"folderUid,omitempty"`
	ConnectedDashboards int64                `json:"connectedDashboards,omitempty"`
	Created             time.Time            `json:"created,omitempty"`
	Updated             time.Time            `json:"updated,omitempty"`
	CreatedBy           LibraryPanelMetaUser `json:"createdBy,omitempty"`
	UpdatedBy           LibraryPanelMetaUser `json:"updatedBy,omitempty"`
}

LibraryPanelMeta represents Grafana library panel metadata.

type LibraryPanelMetaUser

type LibraryPanelMetaUser struct {
	ID        int64  `json:"id"`
	Name      string `json:"name"`
	AvatarURL string `json:"folderId"`
}

LibraryPanelMetaUser represents the Grafana library panel createdBy and updatedBy fields

type ListCloudAPIKeysOutput

type ListCloudAPIKeysOutput struct {
	Items []*CloudAPIKey
}

type LokiDerivedField

type LokiDerivedField struct {
	Name          string `json:"name"`
	MatcherRegex  string `json:"matcherRegex"`
	URL           string `json:"url"`
	DatasourceUID string `json:"datasourceUid,omitempty"`
}

type MatchType

type MatchType int
const (
	MatchEqual MatchType = iota
	MatchNotEqual
	MatchRegexp
	MatchNotRegexp
)

func (MatchType) String

func (m MatchType) String() string

type Matcher

type Matcher struct {
	Type  MatchType
	Name  string
	Value string
}

type Matchers

type Matchers []Matcher

func (Matchers) MarshalJSON

func (m Matchers) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface for Matchers.

func (*Matchers) UnmarshalJSON

func (m *Matchers) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaler interface for Matchers.

type MonthRange

type MonthRange string

A MonthRange is an inclusive range of months, either numerical or full calendar month, e.g "1:3", "december", or "may:august".

type MuteTiming

type MuteTiming struct {
	Name          string         `json:"name"`
	TimeIntervals []TimeInterval `json:"time_intervals"`
	Provenance    string         `json:"provenance,omitempty"`
}

MuteTiming represents a Grafana Alerting mute timing.

type NoDataState

type NoDataState string

type NotificationPolicyTree

type NotificationPolicyTree struct {
	Receiver       string           `json:"receiver,omitempty"`
	GroupBy        []string         `json:"group_by,omitempty"`
	Routes         []SpecificPolicy `json:"routes,omitempty"`
	GroupWait      string           `json:"group_wait,omitempty"`
	GroupInterval  string           `json:"group_interval,omitempty"`
	RepeatInterval string           `json:"repeat_interval,omitempty"`
	Provenance     string           `json:"provenance,omitempty"`
}

Represents a notification routing tree in Grafana Alerting.

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,omitempty"`  // Grafana < 9.0
	UID      string         `json:"uid,omitempty"` // Grafana >= 9.0
	Name     string         `json:"name"`
	Interval string         `json:"interval"`
	Items    []PlaylistItem `json:"items"`
}

Playlist represents a Grafana playlist.

func (*Playlist) QueryID

func (p *Playlist) QueryID() string

Grafana 9.0+ returns the ID and the UID but uses the UID in the API calls. Grafana <9 only returns the ID.

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 Plugin

type Plugin struct {
	ID          int    `json:"id"`
	Name        string `json:"name"`
	Slug        string `json:"slug"`
	Version     string `json:"version"`
	Description string `json:"description"`
}

type Preferences

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

Preferences represents Grafana preferences.

type RelativeTimeRange

type RelativeTimeRange struct {
	From time.Duration `json:"from"`
	To   time.Duration `json:"to"`
}

RelativeTimeRange represents the time range for an alert query.

type Report

type Report struct {
	// ReadOnly
	ID     int64  `json:"id,omitempty"`
	UserID int64  `json:"userId,omitempty"`
	OrgID  int64  `json:"orgId,omitempty"`
	State  string `json:"state,omitempty"`

	DashboardID        int64          `json:"dashboardId"`
	DashboardUID       string         `json:"dashboardUid"`
	Name               string         `json:"name"`
	Recipients         string         `json:"recipients"`
	ReplyTo            string         `json:"replyTo"`
	Message            string         `json:"message"`
	Schedule           ReportSchedule `json:"schedule"`
	Options            ReportOptions  `json:"options"`
	EnableDashboardURL bool           `json:"enableDashboardUrl"`
	EnableCSV          bool           `json:"enableCsv"`
}

Report represents a Grafana report.

type ReportOptions

type ReportOptions struct {
	Orientation string          `json:"orientation"`
	Layout      string          `json:"layout"`
	TimeRange   ReportTimeRange `json:"timeRange"`
}

ReportOptions represents the options for a Grafana report.

type ReportSchedule

type ReportSchedule struct {
	StartDate         *time.Time `json:"startDate,omitempty"`
	EndDate           *time.Time `json:"endDate,omitempty"`
	Frequency         string     `json:"frequency"`
	IntervalFrequency string     `json:"intervalFrequency"`
	IntervalAmount    int64      `json:"intervalAmount"`
	WorkdaysOnly      bool       `json:"workdaysOnly"`
	TimeZone          string     `json:"timeZone"`
}

ReportSchedule represents the schedule from a Grafana report.

type ReportTimeRange

type ReportTimeRange struct {
	From string `json:"from"`
	To   string `json:"to"`
}

ReportTimeRange represents the time range from a Grafana report.

type RetrieveServiceAccountResponse

type RetrieveServiceAccountResponse struct {
	TotalCount      int64               `json:"totalCount"`
	ServiceAccounts []ServiceAccountDTO `json:"serviceAccounts"`
	Page            int64               `json:"page"`
	PerPage         int64               `json:"perPage"`
}

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"`
	Group       string       `json:"group"`
	DisplayName string       `json:"displayName"`
	Hidden      bool         `json:"hidden"`
	Permissions []Permission `json:"permissions,omitempty"`
}

type RuleGroup

type RuleGroup struct {
	Title     string      `json:"title"`
	FolderUID string      `json:"folderUid"`
	Interval  int64       `json:"interval"`
	Rules     []AlertRule `json:"rules"`
}

RuleGroup represents a group of rules in Grafana Alerting.

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, Athena
	AccessKey string `json:"accessKey,omitempty"`
	SecretKey string `json:"secretKey,omitempty"`

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

	// Used by Prometheus and Elasticsearch
	SigV4AccessKey string `json:"sigV4AccessKey,omitempty"`
	SigV4SecretKey string `json:"sigV4SecretKey,omitempty"`

	// Used by GitHub
	AccessToken string `json:"accessToken,omitempty"`

	// Used by Sentry
	AuthToken string `json:"authToken,omitempty"`

	// Used by Azure Monitor
	ClientSecret string `json:"clientSecret,omitempty"`
	// contains filtered or unexported fields
}

SecureJSONData is a representation of the datasource `secureJsonData` property

func (SecureJSONData) MarshalJSON

func (sjd SecureJSONData) MarshalJSON() ([]byte, error)

Marshal SecureJSONData

type ServiceAccountDTO

type ServiceAccountDTO struct {
	ID         int64  `json:"id"`
	Name       string `json:"name"`
	Login      string `json:"login"`
	OrgID      int64  `json:"orgId"`
	IsDisabled bool   `json:"isDisabled"`
	Role       string `json:"role"`
	Tokens     int64  `json:"tokens"`
	AvatarURL  string `json:"avatarUrl"`
}

ServiceAccountDTO represents a Grafana service account.

type Snapshot

type Snapshot struct {
	Model   map[string]interface{} `json:"dashboard"`
	Expires int64                  `json:"expires"`
}

Snapshot represents a Grafana snapshot.

type SnapshotCreateResponse

type SnapshotCreateResponse struct {
	DeleteKey string `json:"deleteKey"`
	DeleteURL string `json:"deleteUrl"`
	Key       string `json:"key"`
	URL       string `json:"url"`
	ID        int64  `json:"id"`
}

SnapshotResponse represents the Grafana API response to creating a dashboard.

type SpecificPolicy

type SpecificPolicy struct {
	Receiver          string           `json:"receiver,omitempty"`
	GroupBy           []string         `json:"group_by,omitempty"`
	ObjectMatchers    Matchers         `json:"object_matchers,omitempty"`
	MuteTimeIntervals []string         `json:"mute_time_intervals,omitempty"`
	Continue          bool             `json:"continue"`
	Routes            []SpecificPolicy `json:"routes,omitempty"`
	GroupWait         string           `json:"group_wait,omitempty"`
	GroupInterval     string           `json:"group_interval,omitempty"`
	RepeatInterval    string           `json:"repeat_interval,omitempty"`
}

Represents a non-root node in a notification routing tree.

type Stack

type Stack struct {
	ID                       int64     `json:"id"`
	OrgID                    int64     `json:"orgId"`
	OrgSlug                  string    `json:"orgSlug"`
	OrgName                  string    `json:"orgName"`
	Name                     string    `json:"name"`
	URL                      string    `json:"url"`
	Slug                     string    `json:"slug"`
	Version                  string    `json:"version"`
	Description              string    `json:"description"`
	Status                   string    `json:"status"`
	Gateway                  string    `json:"gateway"`
	CreatedAt                time.Time `json:"createdAt"`
	CreatedBy                string    `json:"createdBy"`
	UpdatedAt                time.Time `json:"updatedAt"`
	UpdatedBy                string    `json:"updatedBy"`
	Trial                    int       `json:"trial"`
	TrialExpiresAt           time.Time `json:"trialExpiresAt"`
	ClusterID                int       `json:"clusterId"`
	ClusterSlug              string    `json:"clusterSlug"`
	ClusterName              string    `json:"clusterName"`
	Plan                     string    `json:"plan"`
	PlanName                 string    `json:"planName"`
	BillingStartDate         time.Time `json:"billingStartDate"`
	BillingEndDate           time.Time `json:"billingEndDate"`
	BillingActiveUsers       int       `json:"billingActiveUsers"`
	CurrentActiveUsers       int       `json:"currentActiveUsers"`
	CurrentActiveAdminUsers  int       `json:"currentActiveAdminUsers"`
	CurrentActiveEditorUsers int       `json:"currentActiveEditorUsers"`
	CurrentActiveViewerUsers int       `json:"currentActiveViewerUsers"`
	DailyUserCnt             int       `json:"dailyUserCnt"`
	DailyAdminCnt            int       `json:"dailyAdminCnt"`
	DailyEditorCnt           int       `json:"dailyEditorCnt"`
	DailyViewerCnt           int       `json:"dailyViewerCnt"`
	BillableUserCnt          int       `json:"billableUserCnt"`
	DashboardCnt             int       `json:"dashboardCnt"`
	DatasourceCnts           struct {
	} `json:"datasourceCnts"`
	UserQuota                         int     `json:"userQuota"`
	DashboardQuota                    int     `json:"dashboardQuota"`
	AlertQuota                        int     `json:"alertQuota"`
	Ssl                               bool    `json:"ssl"`
	CustomAuth                        bool    `json:"customAuth"`
	CustomDomain                      bool    `json:"customDomain"`
	Support                           bool    `json:"support"`
	RunningVersion                    string  `json:"runningVersion"`
	MachineLearning                   int     `json:"machineLearning"`
	HmInstancePromID                  int     `json:"hmInstancePromId"`
	HmInstancePromURL                 string  `json:"hmInstancePromUrl"`
	HmInstancePromName                string  `json:"hmInstancePromName"`
	HmInstancePromStatus              string  `json:"hmInstancePromStatus"`
	HmInstancePromCurrentUsage        float64 `json:"hmInstancePromCurrentUsage"`
	HmInstancePromCurrentActiveSeries int     `json:"hmInstancePromCurrentActiveSeries"`
	HmInstanceGraphiteID              int     `json:"hmInstanceGraphiteId"`
	HmInstanceGraphiteURL             string  `json:"hmInstanceGraphiteUrl"`
	HmInstanceGraphiteName            string  `json:"hmInstanceGraphiteName"`
	HmInstanceGraphiteType            string  `json:"hmInstanceGraphiteType"`
	HmInstanceGraphiteStatus          string  `json:"hmInstanceGraphiteStatus"`
	HmInstanceGraphiteCurrentUsage    float64 `json:"hmInstanceGraphiteCurrentUsage"`
	HlInstanceID                      int     `json:"hlInstanceId"`
	HlInstanceURL                     string  `json:"hlInstanceUrl"`
	HlInstanceName                    string  `json:"hlInstanceName"`
	HlInstanceStatus                  string  `json:"hlInstanceStatus"`
	HlInstanceCurrentUsage            float64 `json:"hlInstanceCurrentUsage"`
	AmInstanceID                      int     `json:"amInstanceId"`
	AmInstanceName                    string  `json:"amInstanceName"`
	AmInstanceURL                     string  `json:"amInstanceUrl"`
	AmInstanceStatus                  string  `json:"amInstanceStatus"`
	AmInstanceGeneratorURL            string  `json:"amInstanceGeneratorUrl"`
	HtInstanceID                      int     `json:"htInstanceId"`
	HtInstanceURL                     string  `json:"htInstanceUrl"`
	HtInstanceName                    string  `json:"htInstanceName"`
	HtInstanceStatus                  string  `json:"htInstanceStatus"`
	RegionID                          int     `json:"regionId"`
	RegionSlug                        string  `json:"regionSlug"`
	Links                             []struct {
		Rel  string `json:"rel"`
		Href string `json:"href"`
	} `json:"links"`
}

https://grafana.com/docs/grafana-cloud/reference/cloud-api/#stacks

type StackItems

type StackItems struct {
	Items []*Stack `json:"items"`
}

StackItems represents Grafana stack items.

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 TimeInterval

type TimeInterval struct {
	Times       []TimeRange       `json:"times,omitempty"`
	Weekdays    []WeekdayRange    `json:"weekdays,omitempty"`
	DaysOfMonth []DayOfMonthRange `json:"days_of_month,omitempty"`
	Months      []MonthRange      `json:"months,omitempty"`
	Years       []YearRange       `json:"years,omitempty"`
}

TimeInterval describes intervals of time using a Prometheus-defined standard.

type TimeRange

type TimeRange struct {
	StartMinute string `json:"start_time"`
	EndMinute   string `json:"end_time"`
}

TimeRange represents a range of minutes within a 1440 minute day, exclusive of the End minute.

type UpdateServiceAccountRequest

type UpdateServiceAccountRequest struct {
	Name       string `json:"name,omitempty"`
	Role       string `json:"role,omitempty"`
	IsDisabled *bool  `json:"isDisabled,omitempty"`
}

UpdateServiceAccountRequest is the request body for modifying a service account.

type UpdateStackInput

type UpdateStackInput struct {
	Name        string `json:"name"`
	Slug        string `json:"slug"`
	Description string `json:"description"`
}

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.

type WeekdayRange

type WeekdayRange string

A WeekdayRange is an inclusive range of weekdays, e.g. "monday" or "tuesday:thursday".

type YearRange

type YearRange string

A YearRange is a positive inclusive range of years, e.g. "2030" or "2021:2022".

Jump to

Keyboard shortcuts

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