/
sumologic_forwarder.go
68 lines (56 loc) · 1.75 KB
/
sumologic_forwarder.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
62
63
64
65
66
67
68
package goaviatrix
type SumologicForwarder struct {
CID string
AccessID string
AccessKey string
SourceCategory string
CustomCfg string
ExcludedGatewaysInput string
}
type SumologicForwarderResp struct {
AccessID string `json:"acc_id"`
AccessKey string `json:"acc_key"`
SourceCategory string `json:"source_category"`
CustomConfig string `json:"custom_cfg"`
ExcludedGateways []string `json:"excluded_gateway"`
Status string `json:"status"`
}
func (c *Client) EnableSumologicForwarder(r *SumologicForwarder) error {
params := map[string]string{
"action": "enable_sumologic_logging",
"CID": c.CID,
"access_id": r.AccessID,
"access_key": r.AccessKey,
"source_category": r.SourceCategory,
"custom_cfg": r.CustomCfg,
"exclude_gateway_list": r.ExcludedGatewaysInput,
}
return c.PostAPI(params["action"], params, BasicCheck)
}
func (c *Client) GetSumologicForwarderStatus() (*SumologicForwarderResp, error) {
params := map[string]string{
"action": "get_sumologic_logging_status",
"CID": c.CID,
}
type Resp struct {
Return bool `json:"return"`
Results SumologicForwarderResp `json:"results"`
Reason string `json:"reason"`
}
var data Resp
err := c.GetAPI(&data, params["action"], params, BasicCheck)
if err != nil {
return nil, err
}
if data.Results.Status == "disabled" {
return nil, ErrNotFound
}
return &data.Results, nil
}
func (c *Client) DisableSumologicForwarder() error {
params := map[string]string{
"action": "disable_sumologic_logging",
"CID": c.CID,
}
return c.PostAPI(params["action"], params, BasicCheck)
}