-
Notifications
You must be signed in to change notification settings - Fork 683
/
types.go
61 lines (51 loc) · 1.49 KB
/
types.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package consulwatch
import "time"
// Endpoints contains an Array of Endpoint structs and meta information about the Service that the contained endpoints
// are associated with.
type Endpoints struct {
Id string `json:""`
Service string `json:""`
Endpoints []Endpoint `json:""`
}
// GroupByTags returns a map of tag name to array of Endpoint structs.
func (e *Endpoints) GroupByTags() map[string][]Endpoint {
result := make(map[string][]Endpoint)
for _, endpoint := range e.Endpoints {
for _, tag := range endpoint.Tags {
if _, found := result[tag]; !found {
result[tag] = []Endpoint{}
}
updatedEndpoints := append(result[tag], endpoint)
result[tag] = updatedEndpoints
}
}
return result
}
type Endpoint struct {
SystemID string `json:""`
ID string `json:""`
Service string `json:""`
Address string `json:""`
Port int `json:""`
Tags []string `json:""`
}
type Certificate struct {
SerialNumber string `json:",omitempty"`
PEM string `json:",omitempty"`
PrivateKeyPEM string `json:",omitempty"`
Service string `json:",omitempty"`
ServiceURI string `json:",omitempty"`
ValidAfter time.Time `json:",omitempty"`
ValidBefore time.Time `json:",omitempty"`
}
type CARoot struct {
ID string `json:",omitempty"`
Name string `json:",omitempty"`
PEM string `json:",omitempty"`
Active bool
}
type CARoots struct {
ActiveRootID string
TrustDomain string
Roots map[string]CARoot
}