sshpoke/pkg/dto/models.go

63 lines
1.0 KiB
Go

package dto
import "net"
type EventType uint8
const (
EventStart EventType = iota
EventStop
EventShutdown
EventError
EventUnknown
)
var eventTypeNames = map[EventType]string{
EventStart: "start",
EventStop: "stop",
EventShutdown: "shutdown",
EventError: "error",
EventUnknown: "unknown",
}
func (e EventType) String() string {
name, ok := eventTypeNames[e]
if ok {
return name
}
return eventTypeNames[EventUnknown]
}
func TypeFromAction(action string) EventType {
switch action {
case "start":
return EventStart
case "stop", "die":
return EventStop
default:
return EventUnknown
}
}
type Event struct {
Type EventType
Container Container
}
type EventStatus struct {
Type EventType
ID string
Error string
Domain string
}
type Container struct {
ID string `json:"id"`
Names []string `json:"names"`
IP net.IP `json:"ip"`
Port uint16 `json:"port"`
Server string `json:"-"`
RemoteHost string `json:"remote_host,omitempty"`
Domain string `json:"domain"`
}