43 lines
727 B
Go
43 lines
727 B
Go
|
package spec
|
||
|
|
||
|
import (
|
||
|
"forge.cadoles.com/Cadoles/emissary/internal/spec"
|
||
|
)
|
||
|
|
||
|
const Name spec.Name = "mdns.emissary.cadoles.com"
|
||
|
|
||
|
type Spec struct {
|
||
|
Revision int `json:"revision"`
|
||
|
Services map[string]Service `json:"services"`
|
||
|
}
|
||
|
|
||
|
type Service struct {
|
||
|
Type string `json:"type"`
|
||
|
Domain string `json:"domain"`
|
||
|
Host string `json:"host"`
|
||
|
Ifaces []string `json:"ifaces"`
|
||
|
Port int `json:"port"`
|
||
|
}
|
||
|
|
||
|
func (s *Spec) SpecName() spec.Name {
|
||
|
return Name
|
||
|
}
|
||
|
|
||
|
func (s *Spec) SpecRevision() int {
|
||
|
return s.Revision
|
||
|
}
|
||
|
|
||
|
func (s *Spec) SpecData() map[string]any {
|
||
|
return map[string]any{
|
||
|
"services": s.Services,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func NewSpec() *Spec {
|
||
|
return &Spec{
|
||
|
Revision: -1,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var _ spec.Spec = &Spec{}
|