package kos import ( "context" "git.nspix.com/golang/kos/entry" "git.nspix.com/golang/kos/entry/cli" "git.nspix.com/golang/kos/entry/http" ) type ( // Server custom attach server Server interface { Start(ctx context.Context) (err error) Stop() (err error) } // HandleFunc request handle func HandleFunc func(ctx Context) (err error) // Application app interface Application interface { Info() *Info Http() *http.Server Command() *cli.Server Handle(method string, cb HandleFunc, opts ...HandleOption) Run() (err error) } // Info application information Info struct { ID string `json:"id"` Name string `json:"name"` Version string `json:"version"` VcsVersion string `json:"vcsVersion"` Status string `json:"status"` Address string `json:"address"` Port int `json:"port"` Metadata map[string]string `json:"metadata"` } // State application runtime state State struct { ID string `json:"id"` Name string `json:"name"` Version string `json:"version"` Uptime string `json:"uptime"` Gateway *entry.State `json:"gateway"` } )