c15b1b6f10
* annotation legacy store with api server, read only * annotations are not addressable by ID for read operations * add ownership for an app * typo, of course * fix go workspace * update workspace * copy annotation app in dockerfile * experimenting with store interface * finalising interfaces * add tags as custom handler * implement tags handler * add missing config file * mute linter * update generated files * update workspace
48 lines
1.1 KiB
Go
48 lines
1.1 KiB
Go
package annotation
|
|
|
|
import (
|
|
"context"
|
|
|
|
annotationV0 "github.com/grafana/grafana/apps/annotation/pkg/apis/annotation/v0alpha1"
|
|
)
|
|
|
|
type Store interface {
|
|
Get(ctx context.Context, namespace, name string) (*annotationV0.Annotation, error)
|
|
List(ctx context.Context, namespace string, opts ListOptions) (*AnnotationList, error)
|
|
Create(ctx context.Context, annotation *annotationV0.Annotation) (*annotationV0.Annotation, error)
|
|
Update(ctx context.Context, annotation *annotationV0.Annotation) (*annotationV0.Annotation, error)
|
|
Delete(ctx context.Context, namespace, name string) error
|
|
}
|
|
|
|
type ListOptions struct {
|
|
DashboardUID string
|
|
PanelID int64
|
|
From int64
|
|
To int64
|
|
Limit int64
|
|
Continue string
|
|
}
|
|
|
|
type AnnotationList struct {
|
|
Items []annotationV0.Annotation
|
|
Continue string
|
|
}
|
|
|
|
type LifecycleManager interface {
|
|
Cleanup(ctx context.Context) (int64, error)
|
|
}
|
|
|
|
type TagProvider interface {
|
|
ListTags(ctx context.Context, namespace string, opts TagListOptions) ([]Tag, error)
|
|
}
|
|
|
|
type TagListOptions struct {
|
|
Prefix string
|
|
Limit int
|
|
}
|
|
|
|
type Tag struct {
|
|
Name string
|
|
Count int64
|
|
}
|