The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
grafana/pkg/models/apikey.go

63 lines
1.3 KiB

package models
import (
"errors"
"time"
)
var (
ErrApiKeyNotFound = errors.New("API key not found")
ErrInvalidApiKey = errors.New("invalid API key")
ErrInvalidApiKeyExpiration = errors.New("negative value for SecondsToLive")
ErrDuplicateApiKey = errors.New("API key, organization ID and name must be unique")
)
type ApiKey struct {
Id int64
OrgId int64
Name string
Key string
Role RoleType
Created time.Time
Updated time.Time
Expires *int64
ServiceAccountId *int64
}
// ---------------------
// COMMANDS
// swagger:model
type AddApiKeyCommand struct {
Name string `json:"name" binding:"Required"`
Role RoleType `json:"role" binding:"Required"`
OrgId int64 `json:"-"`
Key string `json:"-"`
SecondsToLive int64 `json:"secondsToLive"`
Result *ApiKey `json:"-"`
}
type DeleteApiKeyCommand struct {
Id int64 `json:"id"`
OrgId int64 `json:"-"`
}
// ----------------------
// QUERIES
type GetApiKeysQuery struct {
OrgId int64
IncludeExpired bool
User *SignedInUser
Result []*ApiKey
}
type GetApiKeyByNameQuery struct {
KeyName string
OrgId int64
Result *ApiKey
}
type GetApiKeyByIdQuery struct {
ApiKeyId int64
Result *ApiKey
}