/
service.go
67 lines (53 loc) · 1.35 KB
/
service.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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package v1
import (
"github.com/icinga/icingadb/pkg/contracts"
"github.com/icinga/icingadb/pkg/types"
)
type Service struct {
Checkable `json:",inline"`
HostId types.Binary `json:"host_id"`
}
type ServiceCustomvar struct {
CustomvarMeta `json:",inline"`
ServiceId types.Binary `json:"service_id"`
}
type ServiceState struct {
State `json:",inline"`
ServiceId types.Binary `json:"service_id"`
HostId types.Binary `json:"host_id"`
}
type Servicegroup struct {
GroupMeta `json:",inline"`
}
type ServicegroupCustomvar struct {
CustomvarMeta `json:",inline"`
ServicegroupId types.Binary `json:"servicegroup_id"`
}
type ServicegroupMember struct {
MemberMeta `json:",inline"`
ServiceId types.Binary `json:"service_id"`
ServicegroupId types.Binary `json:"servicegroup_id"`
}
func NewService() contracts.Entity {
return &Service{}
}
func NewServiceCustomvar() contracts.Entity {
return &ServiceCustomvar{}
}
func NewServiceState() contracts.Entity {
return &ServiceState{}
}
func NewServicegroup() contracts.Entity {
return &Servicegroup{}
}
func NewServicegroupCustomvar() contracts.Entity {
return &ServicegroupCustomvar{}
}
func NewServicegroupMember() contracts.Entity {
return &ServicegroupMember{}
}
// Assert interface compliance.
var (
_ contracts.Initer = (*Service)(nil)
_ contracts.Initer = (*Servicegroup)(nil)
)