grafana/pkg/models/datasource.go

99 lines
1.6 KiB
Go

package models
import (
"errors"
"time"
)
const (
DS_GRAPHITE = "graphite"
DS_INFLUXDB = "influxdb"
DS_ES = "elasticsearch"
DS_ACCESS_DIRECT = "direct"
DS_ACCESS_PROXY = "proxy"
)
// Typed errors
var (
ErrDataSourceNotFound = errors.New("Data source not found")
)
type DsType string
type DsAccess string
type DataSource struct {
Id int64
AccountId int64
Name string
Type DsType
Access DsAccess
Url string
Password string
User string
Database string
BasicAuth bool
BasicAuthUser string
BasicAuthPassword string
IsDefault bool
Created time.Time
Updated time.Time
}
// ----------------------
// COMMANDS
// Also acts as api DTO
type AddDataSourceCommand struct {
AccountId int64 `json:"-"`
Name string
Type DsType
Access DsAccess
Url string
Password string
Database string
User string
IsDefault bool
Result *DataSource
}
// Also acts as api DTO
type UpdateDataSourceCommand struct {
Id int64
AccountId int64
Name string
Type DsType
Access DsAccess
Url string
Password string
User string
Database string
IsDefault bool
}
type DeleteDataSourceCommand struct {
Id int64
AccountId int64
}
// ---------------------
// QUERIES
type GetDataSourcesQuery struct {
AccountId int64
Result []*DataSource
}
type GetDataSourceByIdQuery struct {
Id int64
AccountId int64
Result DataSource
}
// ---------------------
// EVENTS
type DataSourceCreatedEvent struct {
}