-
Notifications
You must be signed in to change notification settings - Fork 627
/
Copy pathapi.info.go
executable file
·129 lines (104 loc) · 2.37 KB
/
api.info.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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
// Code generated from specification version 6.7.0: DO NOT EDIT
package esapi
import (
"context"
"strings"
)
func newInfoFunc(t Transport) Info {
return func(o ...func(*InfoRequest)) (*Response, error) {
var r = InfoRequest{}
for _, f := range o {
f(&r)
}
return r.Do(r.ctx, t)
}
}
// ----- API Definition -------------------------------------------------------
// Info returns basic information about the cluster.
//
// See full documentation at http://www.elastic.co/guide/.
//
type Info func(o ...func(*InfoRequest)) (*Response, error)
// InfoRequest configures the Info API request.
//
type InfoRequest struct {
Pretty bool
Human bool
ErrorTrace bool
FilterPath []string
ctx context.Context
}
// Do executes the request and returns response or error.
//
func (r InfoRequest) Do(ctx context.Context, transport Transport) (*Response, error) {
var (
method string
path strings.Builder
params map[string]string
)
method = "GET"
path.Grow(len("/"))
path.WriteString("/")
params = make(map[string]string)
if r.Pretty {
params["pretty"] = "true"
}
if r.Human {
params["human"] = "true"
}
if r.ErrorTrace {
params["error_trace"] = "true"
}
if len(r.FilterPath) > 0 {
params["filter_path"] = strings.Join(r.FilterPath, ",")
}
req, _ := newRequest(method, path.String(), nil)
if len(params) > 0 {
q := req.URL.Query()
for k, v := range params {
q.Set(k, v)
}
req.URL.RawQuery = q.Encode()
}
if ctx != nil {
req = req.WithContext(ctx)
}
res, err := transport.Perform(req)
if err != nil {
return nil, err
}
response := Response{
StatusCode: res.StatusCode,
Body: res.Body,
Header: res.Header,
}
return &response, nil
}
// WithContext sets the request context.
//
func (f Info) WithContext(v context.Context) func(*InfoRequest) {
return func(r *InfoRequest) {
r.ctx = v
}
}
// WithHuman makes statistical values human-readable.
//
func (f Info) WithHuman() func(*InfoRequest) {
return func(r *InfoRequest) {
r.Human = true
}
}
// WithErrorTrace includes the stack trace for errors in the response body.
//
func (f Info) WithErrorTrace() func(*InfoRequest) {
return func(r *InfoRequest) {
r.ErrorTrace = true
}
}
// WithFilterPath filters the properties of the response body.
//
func (f Info) WithFilterPath(v ...string) func(*InfoRequest) {
return func(r *InfoRequest) {
r.FilterPath = v
}
}