1 package metrics
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 AlertsClient struct {
20 BaseClient
21 }
22
23
24 func NewAlertsClient(subscriptionID string) AlertsClient {
25 return NewAlertsClientWithBaseURI(DefaultBaseURI, subscriptionID)
26 }
27
28
29
30 func NewAlertsClientWithBaseURI(baseURI string, subscriptionID string) AlertsClient {
31 return AlertsClient{NewWithBaseURI(baseURI, subscriptionID)}
32 }
33
34
35
36
37
38
39 func (client AlertsClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, ruleName string, parameters AlertResource) (result AlertResource, err error) {
40 if tracing.IsEnabled() {
41 ctx = tracing.StartSpan(ctx, fqdn+"/AlertsClient.CreateOrUpdate")
42 defer func() {
43 sc := -1
44 if result.Response.Response != nil {
45 sc = result.Response.Response.StatusCode
46 }
47 tracing.EndSpan(ctx, sc, err)
48 }()
49 }
50 if err := validation.Validate([]validation.Validation{
51 {TargetValue: client.SubscriptionID,
52 Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
53 {TargetValue: resourceGroupName,
54 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
55 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}},
56 {TargetValue: parameters,
57 Constraints: []validation.Constraint{{Target: "parameters.AlertProperties", Name: validation.Null, Rule: true,
58 Chain: []validation.Constraint{{Target: "parameters.AlertProperties.Severity", Name: validation.Null, Rule: true, Chain: nil},
59 {Target: "parameters.AlertProperties.Enabled", Name: validation.Null, Rule: true, Chain: nil},
60 {Target: "parameters.AlertProperties.Scopes", Name: validation.Null, Rule: true, Chain: nil},
61 {Target: "parameters.AlertProperties.EvaluationFrequency", Name: validation.Null, Rule: true, Chain: nil},
62 {Target: "parameters.AlertProperties.WindowSize", Name: validation.Null, Rule: true, Chain: nil},
63 }}}}}); err != nil {
64 return result, validation.NewError("metrics.AlertsClient", "CreateOrUpdate", err.Error())
65 }
66
67 req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, ruleName, parameters)
68 if err != nil {
69 err = autorest.NewErrorWithError(err, "metrics.AlertsClient", "CreateOrUpdate", nil, "Failure preparing request")
70 return
71 }
72
73 resp, err := client.CreateOrUpdateSender(req)
74 if err != nil {
75 result.Response = autorest.Response{Response: resp}
76 err = autorest.NewErrorWithError(err, "metrics.AlertsClient", "CreateOrUpdate", resp, "Failure sending request")
77 return
78 }
79
80 result, err = client.CreateOrUpdateResponder(resp)
81 if err != nil {
82 err = autorest.NewErrorWithError(err, "metrics.AlertsClient", "CreateOrUpdate", resp, "Failure responding to request")
83 return
84 }
85
86 return
87 }
88
89
90 func (client AlertsClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, ruleName string, parameters AlertResource) (*http.Request, error) {
91 pathParameters := map[string]interface{}{
92 "resourceGroupName": autorest.Encode("path", resourceGroupName),
93 "ruleName": autorest.Encode("path", ruleName),
94 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
95 }
96
97 const APIVersion = "2018-03-01"
98 queryParameters := map[string]interface{}{
99 "api-version": APIVersion,
100 }
101
102 preparer := autorest.CreatePreparer(
103 autorest.AsContentType("application/json; charset=utf-8"),
104 autorest.AsPut(),
105 autorest.WithBaseURL(client.BaseURI),
106 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/metricAlerts/{ruleName}", pathParameters),
107 autorest.WithJSON(parameters),
108 autorest.WithQueryParameters(queryParameters))
109 return preparer.Prepare((&http.Request{}).WithContext(ctx))
110 }
111
112
113
114 func (client AlertsClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) {
115 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
116 }
117
118
119
120 func (client AlertsClient) CreateOrUpdateResponder(resp *http.Response) (result AlertResource, err error) {
121 err = autorest.Respond(
122 resp,
123 azure.WithErrorUnlessStatusCode(http.StatusOK),
124 autorest.ByUnmarshallingJSON(&result),
125 autorest.ByClosing())
126 result.Response = autorest.Response{Response: resp}
127 return
128 }
129
130
131
132
133
134 func (client AlertsClient) Delete(ctx context.Context, resourceGroupName string, ruleName string) (result autorest.Response, err error) {
135 if tracing.IsEnabled() {
136 ctx = tracing.StartSpan(ctx, fqdn+"/AlertsClient.Delete")
137 defer func() {
138 sc := -1
139 if result.Response != nil {
140 sc = result.Response.StatusCode
141 }
142 tracing.EndSpan(ctx, sc, err)
143 }()
144 }
145 if err := validation.Validate([]validation.Validation{
146 {TargetValue: client.SubscriptionID,
147 Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
148 {TargetValue: resourceGroupName,
149 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
150 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil {
151 return result, validation.NewError("metrics.AlertsClient", "Delete", err.Error())
152 }
153
154 req, err := client.DeletePreparer(ctx, resourceGroupName, ruleName)
155 if err != nil {
156 err = autorest.NewErrorWithError(err, "metrics.AlertsClient", "Delete", nil, "Failure preparing request")
157 return
158 }
159
160 resp, err := client.DeleteSender(req)
161 if err != nil {
162 result.Response = resp
163 err = autorest.NewErrorWithError(err, "metrics.AlertsClient", "Delete", resp, "Failure sending request")
164 return
165 }
166
167 result, err = client.DeleteResponder(resp)
168 if err != nil {
169 err = autorest.NewErrorWithError(err, "metrics.AlertsClient", "Delete", resp, "Failure responding to request")
170 return
171 }
172
173 return
174 }
175
176
177 func (client AlertsClient) DeletePreparer(ctx context.Context, resourceGroupName string, ruleName string) (*http.Request, error) {
178 pathParameters := map[string]interface{}{
179 "resourceGroupName": autorest.Encode("path", resourceGroupName),
180 "ruleName": autorest.Encode("path", ruleName),
181 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
182 }
183
184 const APIVersion = "2018-03-01"
185 queryParameters := map[string]interface{}{
186 "api-version": APIVersion,
187 }
188
189 preparer := autorest.CreatePreparer(
190 autorest.AsDelete(),
191 autorest.WithBaseURL(client.BaseURI),
192 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/metricAlerts/{ruleName}", pathParameters),
193 autorest.WithQueryParameters(queryParameters))
194 return preparer.Prepare((&http.Request{}).WithContext(ctx))
195 }
196
197
198
199 func (client AlertsClient) DeleteSender(req *http.Request) (*http.Response, error) {
200 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
201 }
202
203
204
205 func (client AlertsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
206 err = autorest.Respond(
207 resp,
208 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
209 autorest.ByClosing())
210 result.Response = resp
211 return
212 }
213
214
215
216
217
218 func (client AlertsClient) Get(ctx context.Context, resourceGroupName string, ruleName string) (result AlertResource, err error) {
219 if tracing.IsEnabled() {
220 ctx = tracing.StartSpan(ctx, fqdn+"/AlertsClient.Get")
221 defer func() {
222 sc := -1
223 if result.Response.Response != nil {
224 sc = result.Response.Response.StatusCode
225 }
226 tracing.EndSpan(ctx, sc, err)
227 }()
228 }
229 if err := validation.Validate([]validation.Validation{
230 {TargetValue: client.SubscriptionID,
231 Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
232 {TargetValue: resourceGroupName,
233 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
234 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil {
235 return result, validation.NewError("metrics.AlertsClient", "Get", err.Error())
236 }
237
238 req, err := client.GetPreparer(ctx, resourceGroupName, ruleName)
239 if err != nil {
240 err = autorest.NewErrorWithError(err, "metrics.AlertsClient", "Get", nil, "Failure preparing request")
241 return
242 }
243
244 resp, err := client.GetSender(req)
245 if err != nil {
246 result.Response = autorest.Response{Response: resp}
247 err = autorest.NewErrorWithError(err, "metrics.AlertsClient", "Get", resp, "Failure sending request")
248 return
249 }
250
251 result, err = client.GetResponder(resp)
252 if err != nil {
253 err = autorest.NewErrorWithError(err, "metrics.AlertsClient", "Get", resp, "Failure responding to request")
254 return
255 }
256
257 return
258 }
259
260
261 func (client AlertsClient) GetPreparer(ctx context.Context, resourceGroupName string, ruleName string) (*http.Request, error) {
262 pathParameters := map[string]interface{}{
263 "resourceGroupName": autorest.Encode("path", resourceGroupName),
264 "ruleName": autorest.Encode("path", ruleName),
265 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
266 }
267
268 const APIVersion = "2018-03-01"
269 queryParameters := map[string]interface{}{
270 "api-version": APIVersion,
271 }
272
273 preparer := autorest.CreatePreparer(
274 autorest.AsGet(),
275 autorest.WithBaseURL(client.BaseURI),
276 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/metricAlerts/{ruleName}", pathParameters),
277 autorest.WithQueryParameters(queryParameters))
278 return preparer.Prepare((&http.Request{}).WithContext(ctx))
279 }
280
281
282
283 func (client AlertsClient) GetSender(req *http.Request) (*http.Response, error) {
284 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
285 }
286
287
288
289 func (client AlertsClient) GetResponder(resp *http.Response) (result AlertResource, err error) {
290 err = autorest.Respond(
291 resp,
292 azure.WithErrorUnlessStatusCode(http.StatusOK),
293 autorest.ByUnmarshallingJSON(&result),
294 autorest.ByClosing())
295 result.Response = autorest.Response{Response: resp}
296 return
297 }
298
299
300
301
302 func (client AlertsClient) ListByResourceGroup(ctx context.Context, resourceGroupName string) (result AlertResourceCollection, err error) {
303 if tracing.IsEnabled() {
304 ctx = tracing.StartSpan(ctx, fqdn+"/AlertsClient.ListByResourceGroup")
305 defer func() {
306 sc := -1
307 if result.Response.Response != nil {
308 sc = result.Response.Response.StatusCode
309 }
310 tracing.EndSpan(ctx, sc, err)
311 }()
312 }
313 if err := validation.Validate([]validation.Validation{
314 {TargetValue: client.SubscriptionID,
315 Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
316 {TargetValue: resourceGroupName,
317 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
318 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil {
319 return result, validation.NewError("metrics.AlertsClient", "ListByResourceGroup", err.Error())
320 }
321
322 req, err := client.ListByResourceGroupPreparer(ctx, resourceGroupName)
323 if err != nil {
324 err = autorest.NewErrorWithError(err, "metrics.AlertsClient", "ListByResourceGroup", nil, "Failure preparing request")
325 return
326 }
327
328 resp, err := client.ListByResourceGroupSender(req)
329 if err != nil {
330 result.Response = autorest.Response{Response: resp}
331 err = autorest.NewErrorWithError(err, "metrics.AlertsClient", "ListByResourceGroup", resp, "Failure sending request")
332 return
333 }
334
335 result, err = client.ListByResourceGroupResponder(resp)
336 if err != nil {
337 err = autorest.NewErrorWithError(err, "metrics.AlertsClient", "ListByResourceGroup", resp, "Failure responding to request")
338 return
339 }
340
341 return
342 }
343
344
345 func (client AlertsClient) ListByResourceGroupPreparer(ctx context.Context, resourceGroupName string) (*http.Request, error) {
346 pathParameters := map[string]interface{}{
347 "resourceGroupName": autorest.Encode("path", resourceGroupName),
348 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
349 }
350
351 const APIVersion = "2018-03-01"
352 queryParameters := map[string]interface{}{
353 "api-version": APIVersion,
354 }
355
356 preparer := autorest.CreatePreparer(
357 autorest.AsGet(),
358 autorest.WithBaseURL(client.BaseURI),
359 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/metricAlerts", pathParameters),
360 autorest.WithQueryParameters(queryParameters))
361 return preparer.Prepare((&http.Request{}).WithContext(ctx))
362 }
363
364
365
366 func (client AlertsClient) ListByResourceGroupSender(req *http.Request) (*http.Response, error) {
367 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
368 }
369
370
371
372 func (client AlertsClient) ListByResourceGroupResponder(resp *http.Response) (result AlertResourceCollection, err error) {
373 err = autorest.Respond(
374 resp,
375 azure.WithErrorUnlessStatusCode(http.StatusOK),
376 autorest.ByUnmarshallingJSON(&result),
377 autorest.ByClosing())
378 result.Response = autorest.Response{Response: resp}
379 return
380 }
381
382
383 func (client AlertsClient) ListBySubscription(ctx context.Context) (result AlertResourceCollection, err error) {
384 if tracing.IsEnabled() {
385 ctx = tracing.StartSpan(ctx, fqdn+"/AlertsClient.ListBySubscription")
386 defer func() {
387 sc := -1
388 if result.Response.Response != nil {
389 sc = result.Response.Response.StatusCode
390 }
391 tracing.EndSpan(ctx, sc, err)
392 }()
393 }
394 if err := validation.Validate([]validation.Validation{
395 {TargetValue: client.SubscriptionID,
396 Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil {
397 return result, validation.NewError("metrics.AlertsClient", "ListBySubscription", err.Error())
398 }
399
400 req, err := client.ListBySubscriptionPreparer(ctx)
401 if err != nil {
402 err = autorest.NewErrorWithError(err, "metrics.AlertsClient", "ListBySubscription", nil, "Failure preparing request")
403 return
404 }
405
406 resp, err := client.ListBySubscriptionSender(req)
407 if err != nil {
408 result.Response = autorest.Response{Response: resp}
409 err = autorest.NewErrorWithError(err, "metrics.AlertsClient", "ListBySubscription", resp, "Failure sending request")
410 return
411 }
412
413 result, err = client.ListBySubscriptionResponder(resp)
414 if err != nil {
415 err = autorest.NewErrorWithError(err, "metrics.AlertsClient", "ListBySubscription", resp, "Failure responding to request")
416 return
417 }
418
419 return
420 }
421
422
423 func (client AlertsClient) ListBySubscriptionPreparer(ctx context.Context) (*http.Request, error) {
424 pathParameters := map[string]interface{}{
425 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
426 }
427
428 const APIVersion = "2018-03-01"
429 queryParameters := map[string]interface{}{
430 "api-version": APIVersion,
431 }
432
433 preparer := autorest.CreatePreparer(
434 autorest.AsGet(),
435 autorest.WithBaseURL(client.BaseURI),
436 autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Insights/metricAlerts", pathParameters),
437 autorest.WithQueryParameters(queryParameters))
438 return preparer.Prepare((&http.Request{}).WithContext(ctx))
439 }
440
441
442
443 func (client AlertsClient) ListBySubscriptionSender(req *http.Request) (*http.Response, error) {
444 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
445 }
446
447
448
449 func (client AlertsClient) ListBySubscriptionResponder(resp *http.Response) (result AlertResourceCollection, err error) {
450 err = autorest.Respond(
451 resp,
452 azure.WithErrorUnlessStatusCode(http.StatusOK),
453 autorest.ByUnmarshallingJSON(&result),
454 autorest.ByClosing())
455 result.Response = autorest.Response{Response: resp}
456 return
457 }
458
459
460
461
462
463
464 func (client AlertsClient) Update(ctx context.Context, resourceGroupName string, ruleName string, parameters AlertResourcePatch) (result AlertResource, err error) {
465 if tracing.IsEnabled() {
466 ctx = tracing.StartSpan(ctx, fqdn+"/AlertsClient.Update")
467 defer func() {
468 sc := -1
469 if result.Response.Response != nil {
470 sc = result.Response.Response.StatusCode
471 }
472 tracing.EndSpan(ctx, sc, err)
473 }()
474 }
475 if err := validation.Validate([]validation.Validation{
476 {TargetValue: client.SubscriptionID,
477 Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
478 {TargetValue: resourceGroupName,
479 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
480 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil {
481 return result, validation.NewError("metrics.AlertsClient", "Update", err.Error())
482 }
483
484 req, err := client.UpdatePreparer(ctx, resourceGroupName, ruleName, parameters)
485 if err != nil {
486 err = autorest.NewErrorWithError(err, "metrics.AlertsClient", "Update", nil, "Failure preparing request")
487 return
488 }
489
490 resp, err := client.UpdateSender(req)
491 if err != nil {
492 result.Response = autorest.Response{Response: resp}
493 err = autorest.NewErrorWithError(err, "metrics.AlertsClient", "Update", resp, "Failure sending request")
494 return
495 }
496
497 result, err = client.UpdateResponder(resp)
498 if err != nil {
499 err = autorest.NewErrorWithError(err, "metrics.AlertsClient", "Update", resp, "Failure responding to request")
500 return
501 }
502
503 return
504 }
505
506
507 func (client AlertsClient) UpdatePreparer(ctx context.Context, resourceGroupName string, ruleName string, parameters AlertResourcePatch) (*http.Request, error) {
508 pathParameters := map[string]interface{}{
509 "resourceGroupName": autorest.Encode("path", resourceGroupName),
510 "ruleName": autorest.Encode("path", ruleName),
511 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
512 }
513
514 const APIVersion = "2018-03-01"
515 queryParameters := map[string]interface{}{
516 "api-version": APIVersion,
517 }
518
519 preparer := autorest.CreatePreparer(
520 autorest.AsContentType("application/json; charset=utf-8"),
521 autorest.AsPatch(),
522 autorest.WithBaseURL(client.BaseURI),
523 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/metricAlerts/{ruleName}", pathParameters),
524 autorest.WithJSON(parameters),
525 autorest.WithQueryParameters(queryParameters))
526 return preparer.Prepare((&http.Request{}).WithContext(ctx))
527 }
528
529
530
531 func (client AlertsClient) UpdateSender(req *http.Request) (*http.Response, error) {
532 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
533 }
534
535
536
537 func (client AlertsClient) UpdateResponder(resp *http.Response) (result AlertResource, err error) {
538 err = autorest.Respond(
539 resp,
540 azure.WithErrorUnlessStatusCode(http.StatusOK),
541 autorest.ByUnmarshallingJSON(&result),
542 autorest.ByClosing())
543 result.Response = autorest.Response{Response: resp}
544 return
545 }
546
View as plain text