1 package insights
2
3
4
5
6
7
8
9 import (
10 "context"
11 "github.com/Azure/go-autorest/autorest"
12 "github.com/Azure/go-autorest/autorest/azure"
13 "github.com/Azure/go-autorest/autorest/validation"
14 "github.com/Azure/go-autorest/tracing"
15 "net/http"
16 )
17
18
19 type MetricsClient struct {
20 BaseClient
21 }
22
23
24 func NewMetricsClient() MetricsClient {
25 return NewMetricsClientWithBaseURI(DefaultBaseURI)
26 }
27
28
29
30 func NewMetricsClientWithBaseURI(baseURI string) MetricsClient {
31 return MetricsClient{NewWithBaseURI(baseURI)}
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 func (client MetricsClient) Get(ctx context.Context, appID string, metricID MetricID, timespan string, interval *string, aggregation []MetricsAggregation, segment []MetricsSegment, top *int32, orderby string, filter string) (result MetricsResult, err error) {
60 if tracing.IsEnabled() {
61 ctx = tracing.StartSpan(ctx, fqdn+"/MetricsClient.Get")
62 defer func() {
63 sc := -1
64 if result.Response.Response != nil {
65 sc = result.Response.Response.StatusCode
66 }
67 tracing.EndSpan(ctx, sc, err)
68 }()
69 }
70 if err := validation.Validate([]validation.Validation{
71 {TargetValue: aggregation,
72 Constraints: []validation.Constraint{{Target: "aggregation", Name: validation.Null, Rule: false,
73 Chain: []validation.Constraint{{Target: "aggregation", Name: validation.MinItems, Rule: 1, Chain: nil}}}}},
74 {TargetValue: segment,
75 Constraints: []validation.Constraint{{Target: "segment", Name: validation.Null, Rule: false,
76 Chain: []validation.Constraint{{Target: "segment", Name: validation.MinItems, Rule: 1, Chain: nil}}}}}}); err != nil {
77 return result, validation.NewError("insights.MetricsClient", "Get", err.Error())
78 }
79
80 req, err := client.GetPreparer(ctx, appID, metricID, timespan, interval, aggregation, segment, top, orderby, filter)
81 if err != nil {
82 err = autorest.NewErrorWithError(err, "insights.MetricsClient", "Get", nil, "Failure preparing request")
83 return
84 }
85
86 resp, err := client.GetSender(req)
87 if err != nil {
88 result.Response = autorest.Response{Response: resp}
89 err = autorest.NewErrorWithError(err, "insights.MetricsClient", "Get", resp, "Failure sending request")
90 return
91 }
92
93 result, err = client.GetResponder(resp)
94 if err != nil {
95 err = autorest.NewErrorWithError(err, "insights.MetricsClient", "Get", resp, "Failure responding to request")
96 return
97 }
98
99 return
100 }
101
102
103 func (client MetricsClient) GetPreparer(ctx context.Context, appID string, metricID MetricID, timespan string, interval *string, aggregation []MetricsAggregation, segment []MetricsSegment, top *int32, orderby string, filter string) (*http.Request, error) {
104 pathParameters := map[string]interface{}{
105 "appId": autorest.Encode("path", appID),
106 "metricId": autorest.Encode("path", metricID),
107 }
108
109 queryParameters := map[string]interface{}{}
110 if len(timespan) > 0 {
111 queryParameters["timespan"] = autorest.Encode("query", timespan)
112 }
113 if interval != nil {
114 queryParameters["interval"] = autorest.Encode("query", *interval)
115 }
116 if aggregation != nil && len(aggregation) > 0 {
117 queryParameters["aggregation"] = autorest.Encode("query", aggregation, ",")
118 }
119 if segment != nil && len(segment) > 0 {
120 queryParameters["segment"] = autorest.Encode("query", segment, ",")
121 }
122 if top != nil {
123 queryParameters["top"] = autorest.Encode("query", *top)
124 }
125 if len(orderby) > 0 {
126 queryParameters["orderby"] = autorest.Encode("query", orderby)
127 }
128 if len(filter) > 0 {
129 queryParameters["filter"] = autorest.Encode("query", filter)
130 }
131
132 preparer := autorest.CreatePreparer(
133 autorest.AsGet(),
134 autorest.WithBaseURL(client.BaseURI),
135 autorest.WithPathParameters("/apps/{appId}/metrics/{metricId}", pathParameters),
136 autorest.WithQueryParameters(queryParameters))
137 return preparer.Prepare((&http.Request{}).WithContext(ctx))
138 }
139
140
141
142 func (client MetricsClient) GetSender(req *http.Request) (*http.Response, error) {
143 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...))
144 }
145
146
147
148 func (client MetricsClient) GetResponder(resp *http.Response) (result MetricsResult, err error) {
149 err = autorest.Respond(
150 resp,
151 azure.WithErrorUnlessStatusCode(http.StatusOK),
152 autorest.ByUnmarshallingJSON(&result),
153 autorest.ByClosing())
154 result.Response = autorest.Response{Response: resp}
155 return
156 }
157
158
159
160
161
162 func (client MetricsClient) GetMetadata(ctx context.Context, appID string) (result SetObject, err error) {
163 if tracing.IsEnabled() {
164 ctx = tracing.StartSpan(ctx, fqdn+"/MetricsClient.GetMetadata")
165 defer func() {
166 sc := -1
167 if result.Response.Response != nil {
168 sc = result.Response.Response.StatusCode
169 }
170 tracing.EndSpan(ctx, sc, err)
171 }()
172 }
173 req, err := client.GetMetadataPreparer(ctx, appID)
174 if err != nil {
175 err = autorest.NewErrorWithError(err, "insights.MetricsClient", "GetMetadata", nil, "Failure preparing request")
176 return
177 }
178
179 resp, err := client.GetMetadataSender(req)
180 if err != nil {
181 result.Response = autorest.Response{Response: resp}
182 err = autorest.NewErrorWithError(err, "insights.MetricsClient", "GetMetadata", resp, "Failure sending request")
183 return
184 }
185
186 result, err = client.GetMetadataResponder(resp)
187 if err != nil {
188 err = autorest.NewErrorWithError(err, "insights.MetricsClient", "GetMetadata", resp, "Failure responding to request")
189 return
190 }
191
192 return
193 }
194
195
196 func (client MetricsClient) GetMetadataPreparer(ctx context.Context, appID string) (*http.Request, error) {
197 pathParameters := map[string]interface{}{
198 "appId": autorest.Encode("path", appID),
199 }
200
201 preparer := autorest.CreatePreparer(
202 autorest.AsGet(),
203 autorest.WithBaseURL(client.BaseURI),
204 autorest.WithPathParameters("/apps/{appId}/metrics/metadata", pathParameters))
205 return preparer.Prepare((&http.Request{}).WithContext(ctx))
206 }
207
208
209
210 func (client MetricsClient) GetMetadataSender(req *http.Request) (*http.Response, error) {
211 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...))
212 }
213
214
215
216 func (client MetricsClient) GetMetadataResponder(resp *http.Response) (result SetObject, err error) {
217 err = autorest.Respond(
218 resp,
219 azure.WithErrorUnlessStatusCode(http.StatusOK),
220 autorest.ByUnmarshallingJSON(&result.Value),
221 autorest.ByClosing())
222 result.Response = autorest.Response{Response: resp}
223 return
224 }
225
226
227
228
229
230
231 func (client MetricsClient) GetMultiple(ctx context.Context, appID string, body []MetricsPostBodySchema) (result ListMetricsResultsItem, err error) {
232 if tracing.IsEnabled() {
233 ctx = tracing.StartSpan(ctx, fqdn+"/MetricsClient.GetMultiple")
234 defer func() {
235 sc := -1
236 if result.Response.Response != nil {
237 sc = result.Response.Response.StatusCode
238 }
239 tracing.EndSpan(ctx, sc, err)
240 }()
241 }
242 if err := validation.Validate([]validation.Validation{
243 {TargetValue: body,
244 Constraints: []validation.Constraint{{Target: "body", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil {
245 return result, validation.NewError("insights.MetricsClient", "GetMultiple", err.Error())
246 }
247
248 req, err := client.GetMultiplePreparer(ctx, appID, body)
249 if err != nil {
250 err = autorest.NewErrorWithError(err, "insights.MetricsClient", "GetMultiple", nil, "Failure preparing request")
251 return
252 }
253
254 resp, err := client.GetMultipleSender(req)
255 if err != nil {
256 result.Response = autorest.Response{Response: resp}
257 err = autorest.NewErrorWithError(err, "insights.MetricsClient", "GetMultiple", resp, "Failure sending request")
258 return
259 }
260
261 result, err = client.GetMultipleResponder(resp)
262 if err != nil {
263 err = autorest.NewErrorWithError(err, "insights.MetricsClient", "GetMultiple", resp, "Failure responding to request")
264 return
265 }
266
267 return
268 }
269
270
271 func (client MetricsClient) GetMultiplePreparer(ctx context.Context, appID string, body []MetricsPostBodySchema) (*http.Request, error) {
272 pathParameters := map[string]interface{}{
273 "appId": autorest.Encode("path", appID),
274 }
275
276 preparer := autorest.CreatePreparer(
277 autorest.AsContentType("application/json; charset=utf-8"),
278 autorest.AsPost(),
279 autorest.WithBaseURL(client.BaseURI),
280 autorest.WithPathParameters("/apps/{appId}/metrics", pathParameters),
281 autorest.WithJSON(body))
282 return preparer.Prepare((&http.Request{}).WithContext(ctx))
283 }
284
285
286
287 func (client MetricsClient) GetMultipleSender(req *http.Request) (*http.Response, error) {
288 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...))
289 }
290
291
292
293 func (client MetricsClient) GetMultipleResponder(resp *http.Response) (result ListMetricsResultsItem, err error) {
294 err = autorest.Respond(
295 resp,
296 azure.WithErrorUnlessStatusCode(http.StatusOK),
297 autorest.ByUnmarshallingJSON(&result.Value),
298 autorest.ByClosing())
299 result.Response = autorest.Response{Response: resp}
300 return
301 }
302
View as plain text