Documentation
¶
Index ¶
- func GetClient(serverURL string) (*client.GrafanaHTTPAPI, error)
- func ToPtr[T any](t T) *T
- type APIKeyAuthenticator
- type BasicAuthenticator
- type CloudAPIKey
- type CloudClient
- func (c *CloudClient) CreateCloudAPIKey(org string, input *CreateCloudAPIKeyInput) (*CloudAPIKey, error)
- func (c *CloudClient) DeleteCloudAPIKey(org string, keyName string) error
- func (c *CloudClient) DeleteStack(stackSlug string) error
- func (c *CloudClient) GetCloudPluginInstallation(stackSlug string, pluginSlug string) (*CloudPluginInstallation, error)
- func (c *CloudClient) GetCloudRegionBySlug(slug string) (CloudRegion, error)
- func (c *CloudClient) GetCloudRegions() (CloudRegionsResponse, error)
- func (c *CloudClient) InstallCloudPlugin(stackSlug string, pluginSlug string, pluginVersion string) (*CloudPluginInstallation, error)
- func (c *CloudClient) IsCloudPluginInstalled(stackSlug string, pluginSlug string) (bool, error)
- func (c *CloudClient) ListCloudAPIKeys(org string) (*ListCloudAPIKeysOutput, error)
- func (c *CloudClient) NewStack(stack *CreateStackInput) (int64, error)
- func (c *CloudClient) PluginByID(pluginID int64) (*Plugin, error)
- func (c *CloudClient) PluginBySlug(slug string) (*Plugin, error)
- func (c *CloudClient) StackByID(id int64) (Stack, error)
- func (c *CloudClient) StackBySlug(slug string) (Stack, error)
- func (c *CloudClient) Stacks() (StackItems, error)
- func (c *CloudClient) UninstallCloudPlugin(stackSlug string, pluginSlug string) error
- func (c *CloudClient) UpdateStack(id int64, stack *UpdateStackInput) error
- type CloudPluginInstallation
- type CloudRegion
- type CloudRegionsResponse
- type Config
- type CreateCloudAPIKeyInput
- type CreateStackInput
- type ListCloudAPIKeysOutput
- type Plugin
- type Stack
- type StackItems
- type UpdateStackInput
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type APIKeyAuthenticator ¶
type APIKeyAuthenticator struct {
APIKey string
}
func (APIKeyAuthenticator) AuthenticateRequest ¶
func (a APIKeyAuthenticator) AuthenticateRequest(req runtime.ClientRequest, reg strfmt.Registry) error
type BasicAuthenticator ¶
func (BasicAuthenticator) AuthenticateRequest ¶
func (a BasicAuthenticator) AuthenticateRequest(req runtime.ClientRequest, reg strfmt.Registry) error
type CloudAPIKey ¶
type CloudClient ¶
type CloudClient struct {
// contains filtered or unexported fields
}
CloudClient is a Grafana API client.
func New ¶
func New(baseURL string, cfg Config) (*CloudClient, error)
New creates a new Grafana client.
func (*CloudClient) CreateCloudAPIKey ¶
func (c *CloudClient) CreateCloudAPIKey(org string, input *CreateCloudAPIKeyInput) (*CloudAPIKey, error)
func (*CloudClient) DeleteCloudAPIKey ¶
func (c *CloudClient) DeleteCloudAPIKey(org string, keyName string) error
func (*CloudClient) DeleteStack ¶
func (c *CloudClient) DeleteStack(stackSlug string) error
DeleteStack deletes the Grafana stack whose slug it passed in.
func (*CloudClient) GetCloudPluginInstallation ¶
func (c *CloudClient) GetCloudPluginInstallation(stackSlug string, pluginSlug string) (*CloudPluginInstallation, error)
GetCloudPluginInstallation returns the cloud plugin installation details for the specified plugin.
func (*CloudClient) GetCloudRegionBySlug ¶
func (c *CloudClient) 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 (*CloudClient) GetCloudRegions ¶
func (c *CloudClient) GetCloudRegions() (CloudRegionsResponse, error)
GetCloudRegions fetches and returns all Grafana Cloud regions.
func (*CloudClient) InstallCloudPlugin ¶
func (c *CloudClient) InstallCloudPlugin(stackSlug string, pluginSlug string, pluginVersion string) (*CloudPluginInstallation, error)
InstallCloudPlugin installs the specified plugin to the given stack.
func (*CloudClient) IsCloudPluginInstalled ¶
func (c *CloudClient) IsCloudPluginInstalled(stackSlug string, pluginSlug string) (bool, error)
IsCloudPluginInstalled returns a boolean if the specified plugin is installed on the stack.
func (*CloudClient) ListCloudAPIKeys ¶
func (c *CloudClient) ListCloudAPIKeys(org string) (*ListCloudAPIKeysOutput, error)
func (*CloudClient) NewStack ¶
func (c *CloudClient) NewStack(stack *CreateStackInput) (int64, error)
NewStack creates a new Grafana Stack
func (*CloudClient) PluginByID ¶
func (c *CloudClient) PluginByID(pluginID int64) (*Plugin, error)
PluginByID returns the plugin with the given id. An error will be returned given an unknown ID.
func (*CloudClient) PluginBySlug ¶
func (c *CloudClient) PluginBySlug(slug string) (*Plugin, error)
PluginBySlug returns the plugin with the given slug. An error will be returned given an unknown slug.
func (*CloudClient) StackByID ¶
func (c *CloudClient) 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 (*CloudClient) StackBySlug ¶
func (c *CloudClient) StackBySlug(slug string) (Stack, error)
StackByName fetches and returns the stack whose slug it's passed.
func (*CloudClient) Stacks ¶
func (c *CloudClient) Stacks() (StackItems, error)
Stacks fetches and returns the Grafana stacks.
func (*CloudClient) UninstallCloudPlugin ¶
func (c *CloudClient) UninstallCloudPlugin(stackSlug string, pluginSlug string) error
UninstallCloudPlugin uninstalls the specified plugin to the given stack.
func (*CloudClient) UpdateStack ¶
func (c *CloudClient) 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
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 CreateCloudAPIKeyInput ¶
type CreateStackInput ¶
type ListCloudAPIKeysOutput ¶
type ListCloudAPIKeysOutput struct {
Items []*CloudAPIKey
}
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.