sshpoke/pkg/dto/models.go

63 lines
1.2 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" example:"49ec97b6a12560f98fe21a20a88c37d289c83b14cc0ada2a62b0e404512905ed"`
Names []string `json:"names" example:"service-web-1"`
IP net.IP `json:"ip" swaggertype:"string" format:"ipv4"`
Port uint16 `json:"port" example:"80"`
Server string `json:"-"`
RemoteHost string `json:"remote_host,omitempty" example:"hostname"`
Domain string `json:"domain" example:"https://service.localhost.run"`
}