forked from solo-io/gloo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
interface.go
52 lines (45 loc) · 1.36 KB
/
interface.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package storage
import "github.com/solo-io/gloo/pkg/api/types/v1"
// Interface is interface to the storage backend
type Interface interface {
V1() V1
}
type V1 interface {
Register() error
Upstreams() Upstreams
VirtualServices() VirtualServices
Roles() Roles
Attributes() Attributes
}
type Upstreams interface {
Create(*v1.Upstream) (*v1.Upstream, error)
Update(*v1.Upstream) (*v1.Upstream, error)
Delete(name string) error
Get(name string) (*v1.Upstream, error)
List() ([]*v1.Upstream, error)
Watch(handlers ...UpstreamEventHandler) (*Watcher, error)
}
type VirtualServices interface {
Create(*v1.VirtualService) (*v1.VirtualService, error)
Update(*v1.VirtualService) (*v1.VirtualService, error)
Delete(name string) error
Get(name string) (*v1.VirtualService, error)
List() ([]*v1.VirtualService, error)
Watch(...VirtualServiceEventHandler) (*Watcher, error)
}
type Roles interface {
Create(*v1.Role) (*v1.Role, error)
Update(*v1.Role) (*v1.Role, error)
Delete(name string) error
Get(name string) (*v1.Role, error)
List() ([]*v1.Role, error)
Watch(...RoleEventHandler) (*Watcher, error)
}
type Attributes interface {
Create(*v1.Attribute) (*v1.Attribute, error)
Update(*v1.Attribute) (*v1.Attribute, error)
Delete(name string) error
Get(name string) (*v1.Attribute, error)
List() ([]*v1.Attribute, error)
Watch(...AttributeEventHandler) (*Watcher, error)
}