diff --git a/cmd/icingadb/main.go b/cmd/icingadb/main.go index a66154d1..c15188a5 100644 --- a/cmd/icingadb/main.go +++ b/cmd/icingadb/main.go @@ -126,6 +126,8 @@ func main() { v1.NewNotesUrl, v1.NewService, v1.NewServiceCustomvar, + v1.NewUser, + v1.NewUserCustomvar, } { factoryFunc := factoryFunc diff --git a/pkg/icingadb/v1/user.go b/pkg/icingadb/v1/user.go new file mode 100644 index 00000000..42270a29 --- /dev/null +++ b/pkg/icingadb/v1/user.go @@ -0,0 +1,38 @@ +package v1 + +import ( + "github.com/icinga/icingadb/pkg/contracts" + "github.com/icinga/icingadb/pkg/types" +) + +type User struct { + EntityWithChecksum `json:",inline"` + EnvironmentMeta `json:",inline"` + NameCiMeta `json:",inline"` + DisplayName string `json:"display_name"` + Email string `json:"email"` + Pager string `json:"pager"` + NotificationsEnabled types.Bool `json:"notifications_enabled"` + TimeperiodId types.Binary `json:"timeperiod_id"` + States uint8 `json:"states"` + Types uint16 `json:"types"` + ZoneId types.Binary `json:"zone_id"` +} + +type UserCustomvar struct { + CustomvarMeta `json:",inline"` + UserId types.Binary `json:"object_id"` +} + +func NewUser() contracts.Entity { + return &User{} +} + +func NewUserCustomvar() contracts.Entity { + return &UserCustomvar{} +} + +// Assert interface compliance. +var ( + _ contracts.Initer = (*User)(nil) +)