1package dtl
2
3// Copyright (c) Microsoft Corporation. All rights reserved.
4// Licensed under the MIT License. See License.txt in the project root for license information.
5//
6// Code generated by Microsoft (R) AutoRest Code Generator.
7// Changes may cause incorrect behavior and will be lost if the code is regenerated.
8
9import (
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// NotificationChannelsClient is the the DevTest Labs Client.
19type NotificationChannelsClient struct {
20	BaseClient
21}
22
23// NewNotificationChannelsClient creates an instance of the NotificationChannelsClient client.
24func NewNotificationChannelsClient(subscriptionID string) NotificationChannelsClient {
25	return NewNotificationChannelsClientWithBaseURI(DefaultBaseURI, subscriptionID)
26}
27
28// NewNotificationChannelsClientWithBaseURI creates an instance of the NotificationChannelsClient client using a custom
29// endpoint.  Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure
30// stack).
31func NewNotificationChannelsClientWithBaseURI(baseURI string, subscriptionID string) NotificationChannelsClient {
32	return NotificationChannelsClient{NewWithBaseURI(baseURI, subscriptionID)}
33}
34
35// CreateOrUpdate create or replace an existing notificationChannel.
36// Parameters:
37// resourceGroupName - the name of the resource group.
38// labName - the name of the lab.
39// name - the name of the notificationChannel.
40// notificationChannel - a notification.
41func (client NotificationChannelsClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, labName string, name string, notificationChannel NotificationChannel) (result NotificationChannel, err error) {
42	if tracing.IsEnabled() {
43		ctx = tracing.StartSpan(ctx, fqdn+"/NotificationChannelsClient.CreateOrUpdate")
44		defer func() {
45			sc := -1
46			if result.Response.Response != nil {
47				sc = result.Response.Response.StatusCode
48			}
49			tracing.EndSpan(ctx, sc, err)
50		}()
51	}
52	if err := validation.Validate([]validation.Validation{
53		{TargetValue: notificationChannel,
54			Constraints: []validation.Constraint{{Target: "notificationChannel.NotificationChannelProperties", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil {
55		return result, validation.NewError("dtl.NotificationChannelsClient", "CreateOrUpdate", err.Error())
56	}
57
58	req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, labName, name, notificationChannel)
59	if err != nil {
60		err = autorest.NewErrorWithError(err, "dtl.NotificationChannelsClient", "CreateOrUpdate", nil, "Failure preparing request")
61		return
62	}
63
64	resp, err := client.CreateOrUpdateSender(req)
65	if err != nil {
66		result.Response = autorest.Response{Response: resp}
67		err = autorest.NewErrorWithError(err, "dtl.NotificationChannelsClient", "CreateOrUpdate", resp, "Failure sending request")
68		return
69	}
70
71	result, err = client.CreateOrUpdateResponder(resp)
72	if err != nil {
73		err = autorest.NewErrorWithError(err, "dtl.NotificationChannelsClient", "CreateOrUpdate", resp, "Failure responding to request")
74		return
75	}
76
77	return
78}
79
80// CreateOrUpdatePreparer prepares the CreateOrUpdate request.
81func (client NotificationChannelsClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, labName string, name string, notificationChannel NotificationChannel) (*http.Request, error) {
82	pathParameters := map[string]interface{}{
83		"labName":           autorest.Encode("path", labName),
84		"name":              autorest.Encode("path", name),
85		"resourceGroupName": autorest.Encode("path", resourceGroupName),
86		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
87	}
88
89	const APIVersion = "2016-05-15"
90	queryParameters := map[string]interface{}{
91		"api-version": APIVersion,
92	}
93
94	preparer := autorest.CreatePreparer(
95		autorest.AsContentType("application/json; charset=utf-8"),
96		autorest.AsPut(),
97		autorest.WithBaseURL(client.BaseURI),
98		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/notificationchannels/{name}", pathParameters),
99		autorest.WithJSON(notificationChannel),
100		autorest.WithQueryParameters(queryParameters))
101	return preparer.Prepare((&http.Request{}).WithContext(ctx))
102}
103
104// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the
105// http.Response Body if it receives an error.
106func (client NotificationChannelsClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) {
107	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
108}
109
110// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always
111// closes the http.Response Body.
112func (client NotificationChannelsClient) CreateOrUpdateResponder(resp *http.Response) (result NotificationChannel, err error) {
113	err = autorest.Respond(
114		resp,
115		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated),
116		autorest.ByUnmarshallingJSON(&result),
117		autorest.ByClosing())
118	result.Response = autorest.Response{Response: resp}
119	return
120}
121
122// Delete delete notification channel.
123// Parameters:
124// resourceGroupName - the name of the resource group.
125// labName - the name of the lab.
126// name - the name of the notificationChannel.
127func (client NotificationChannelsClient) Delete(ctx context.Context, resourceGroupName string, labName string, name string) (result autorest.Response, err error) {
128	if tracing.IsEnabled() {
129		ctx = tracing.StartSpan(ctx, fqdn+"/NotificationChannelsClient.Delete")
130		defer func() {
131			sc := -1
132			if result.Response != nil {
133				sc = result.Response.StatusCode
134			}
135			tracing.EndSpan(ctx, sc, err)
136		}()
137	}
138	req, err := client.DeletePreparer(ctx, resourceGroupName, labName, name)
139	if err != nil {
140		err = autorest.NewErrorWithError(err, "dtl.NotificationChannelsClient", "Delete", nil, "Failure preparing request")
141		return
142	}
143
144	resp, err := client.DeleteSender(req)
145	if err != nil {
146		result.Response = resp
147		err = autorest.NewErrorWithError(err, "dtl.NotificationChannelsClient", "Delete", resp, "Failure sending request")
148		return
149	}
150
151	result, err = client.DeleteResponder(resp)
152	if err != nil {
153		err = autorest.NewErrorWithError(err, "dtl.NotificationChannelsClient", "Delete", resp, "Failure responding to request")
154		return
155	}
156
157	return
158}
159
160// DeletePreparer prepares the Delete request.
161func (client NotificationChannelsClient) DeletePreparer(ctx context.Context, resourceGroupName string, labName string, name string) (*http.Request, error) {
162	pathParameters := map[string]interface{}{
163		"labName":           autorest.Encode("path", labName),
164		"name":              autorest.Encode("path", name),
165		"resourceGroupName": autorest.Encode("path", resourceGroupName),
166		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
167	}
168
169	const APIVersion = "2016-05-15"
170	queryParameters := map[string]interface{}{
171		"api-version": APIVersion,
172	}
173
174	preparer := autorest.CreatePreparer(
175		autorest.AsDelete(),
176		autorest.WithBaseURL(client.BaseURI),
177		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/notificationchannels/{name}", pathParameters),
178		autorest.WithQueryParameters(queryParameters))
179	return preparer.Prepare((&http.Request{}).WithContext(ctx))
180}
181
182// DeleteSender sends the Delete request. The method will close the
183// http.Response Body if it receives an error.
184func (client NotificationChannelsClient) DeleteSender(req *http.Request) (*http.Response, error) {
185	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
186}
187
188// DeleteResponder handles the response to the Delete request. The method always
189// closes the http.Response Body.
190func (client NotificationChannelsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
191	err = autorest.Respond(
192		resp,
193		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
194		autorest.ByClosing())
195	result.Response = resp
196	return
197}
198
199// Get get notification channels.
200// Parameters:
201// resourceGroupName - the name of the resource group.
202// labName - the name of the lab.
203// name - the name of the notificationChannel.
204// expand - specify the $expand query. Example: 'properties($select=webHookUrl)'
205func (client NotificationChannelsClient) Get(ctx context.Context, resourceGroupName string, labName string, name string, expand string) (result NotificationChannel, err error) {
206	if tracing.IsEnabled() {
207		ctx = tracing.StartSpan(ctx, fqdn+"/NotificationChannelsClient.Get")
208		defer func() {
209			sc := -1
210			if result.Response.Response != nil {
211				sc = result.Response.Response.StatusCode
212			}
213			tracing.EndSpan(ctx, sc, err)
214		}()
215	}
216	req, err := client.GetPreparer(ctx, resourceGroupName, labName, name, expand)
217	if err != nil {
218		err = autorest.NewErrorWithError(err, "dtl.NotificationChannelsClient", "Get", nil, "Failure preparing request")
219		return
220	}
221
222	resp, err := client.GetSender(req)
223	if err != nil {
224		result.Response = autorest.Response{Response: resp}
225		err = autorest.NewErrorWithError(err, "dtl.NotificationChannelsClient", "Get", resp, "Failure sending request")
226		return
227	}
228
229	result, err = client.GetResponder(resp)
230	if err != nil {
231		err = autorest.NewErrorWithError(err, "dtl.NotificationChannelsClient", "Get", resp, "Failure responding to request")
232		return
233	}
234
235	return
236}
237
238// GetPreparer prepares the Get request.
239func (client NotificationChannelsClient) GetPreparer(ctx context.Context, resourceGroupName string, labName string, name string, expand string) (*http.Request, error) {
240	pathParameters := map[string]interface{}{
241		"labName":           autorest.Encode("path", labName),
242		"name":              autorest.Encode("path", name),
243		"resourceGroupName": autorest.Encode("path", resourceGroupName),
244		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
245	}
246
247	const APIVersion = "2016-05-15"
248	queryParameters := map[string]interface{}{
249		"api-version": APIVersion,
250	}
251	if len(expand) > 0 {
252		queryParameters["$expand"] = autorest.Encode("query", expand)
253	}
254
255	preparer := autorest.CreatePreparer(
256		autorest.AsGet(),
257		autorest.WithBaseURL(client.BaseURI),
258		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/notificationchannels/{name}", pathParameters),
259		autorest.WithQueryParameters(queryParameters))
260	return preparer.Prepare((&http.Request{}).WithContext(ctx))
261}
262
263// GetSender sends the Get request. The method will close the
264// http.Response Body if it receives an error.
265func (client NotificationChannelsClient) GetSender(req *http.Request) (*http.Response, error) {
266	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
267}
268
269// GetResponder handles the response to the Get request. The method always
270// closes the http.Response Body.
271func (client NotificationChannelsClient) GetResponder(resp *http.Response) (result NotificationChannel, err error) {
272	err = autorest.Respond(
273		resp,
274		azure.WithErrorUnlessStatusCode(http.StatusOK),
275		autorest.ByUnmarshallingJSON(&result),
276		autorest.ByClosing())
277	result.Response = autorest.Response{Response: resp}
278	return
279}
280
281// List list notification channels in a given lab.
282// Parameters:
283// resourceGroupName - the name of the resource group.
284// labName - the name of the lab.
285// expand - specify the $expand query. Example: 'properties($select=webHookUrl)'
286// filter - the filter to apply to the operation.
287// top - the maximum number of resources to return from the operation.
288// orderby - the ordering expression for the results, using OData notation.
289func (client NotificationChannelsClient) List(ctx context.Context, resourceGroupName string, labName string, expand string, filter string, top *int32, orderby string) (result ResponseWithContinuationNotificationChannelPage, err error) {
290	if tracing.IsEnabled() {
291		ctx = tracing.StartSpan(ctx, fqdn+"/NotificationChannelsClient.List")
292		defer func() {
293			sc := -1
294			if result.rwcnc.Response.Response != nil {
295				sc = result.rwcnc.Response.Response.StatusCode
296			}
297			tracing.EndSpan(ctx, sc, err)
298		}()
299	}
300	result.fn = client.listNextResults
301	req, err := client.ListPreparer(ctx, resourceGroupName, labName, expand, filter, top, orderby)
302	if err != nil {
303		err = autorest.NewErrorWithError(err, "dtl.NotificationChannelsClient", "List", nil, "Failure preparing request")
304		return
305	}
306
307	resp, err := client.ListSender(req)
308	if err != nil {
309		result.rwcnc.Response = autorest.Response{Response: resp}
310		err = autorest.NewErrorWithError(err, "dtl.NotificationChannelsClient", "List", resp, "Failure sending request")
311		return
312	}
313
314	result.rwcnc, err = client.ListResponder(resp)
315	if err != nil {
316		err = autorest.NewErrorWithError(err, "dtl.NotificationChannelsClient", "List", resp, "Failure responding to request")
317		return
318	}
319	if result.rwcnc.hasNextLink() && result.rwcnc.IsEmpty() {
320		err = result.NextWithContext(ctx)
321		return
322	}
323
324	return
325}
326
327// ListPreparer prepares the List request.
328func (client NotificationChannelsClient) ListPreparer(ctx context.Context, resourceGroupName string, labName string, expand string, filter string, top *int32, orderby string) (*http.Request, error) {
329	pathParameters := map[string]interface{}{
330		"labName":           autorest.Encode("path", labName),
331		"resourceGroupName": autorest.Encode("path", resourceGroupName),
332		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
333	}
334
335	const APIVersion = "2016-05-15"
336	queryParameters := map[string]interface{}{
337		"api-version": APIVersion,
338	}
339	if len(expand) > 0 {
340		queryParameters["$expand"] = autorest.Encode("query", expand)
341	}
342	if len(filter) > 0 {
343		queryParameters["$filter"] = autorest.Encode("query", filter)
344	}
345	if top != nil {
346		queryParameters["$top"] = autorest.Encode("query", *top)
347	}
348	if len(orderby) > 0 {
349		queryParameters["$orderby"] = autorest.Encode("query", orderby)
350	}
351
352	preparer := autorest.CreatePreparer(
353		autorest.AsGet(),
354		autorest.WithBaseURL(client.BaseURI),
355		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/notificationchannels", pathParameters),
356		autorest.WithQueryParameters(queryParameters))
357	return preparer.Prepare((&http.Request{}).WithContext(ctx))
358}
359
360// ListSender sends the List request. The method will close the
361// http.Response Body if it receives an error.
362func (client NotificationChannelsClient) ListSender(req *http.Request) (*http.Response, error) {
363	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
364}
365
366// ListResponder handles the response to the List request. The method always
367// closes the http.Response Body.
368func (client NotificationChannelsClient) ListResponder(resp *http.Response) (result ResponseWithContinuationNotificationChannel, err error) {
369	err = autorest.Respond(
370		resp,
371		azure.WithErrorUnlessStatusCode(http.StatusOK),
372		autorest.ByUnmarshallingJSON(&result),
373		autorest.ByClosing())
374	result.Response = autorest.Response{Response: resp}
375	return
376}
377
378// listNextResults retrieves the next set of results, if any.
379func (client NotificationChannelsClient) listNextResults(ctx context.Context, lastResults ResponseWithContinuationNotificationChannel) (result ResponseWithContinuationNotificationChannel, err error) {
380	req, err := lastResults.responseWithContinuationNotificationChannelPreparer(ctx)
381	if err != nil {
382		return result, autorest.NewErrorWithError(err, "dtl.NotificationChannelsClient", "listNextResults", nil, "Failure preparing next results request")
383	}
384	if req == nil {
385		return
386	}
387	resp, err := client.ListSender(req)
388	if err != nil {
389		result.Response = autorest.Response{Response: resp}
390		return result, autorest.NewErrorWithError(err, "dtl.NotificationChannelsClient", "listNextResults", resp, "Failure sending next results request")
391	}
392	result, err = client.ListResponder(resp)
393	if err != nil {
394		err = autorest.NewErrorWithError(err, "dtl.NotificationChannelsClient", "listNextResults", resp, "Failure responding to next results request")
395	}
396	return
397}
398
399// ListComplete enumerates all values, automatically crossing page boundaries as required.
400func (client NotificationChannelsClient) ListComplete(ctx context.Context, resourceGroupName string, labName string, expand string, filter string, top *int32, orderby string) (result ResponseWithContinuationNotificationChannelIterator, err error) {
401	if tracing.IsEnabled() {
402		ctx = tracing.StartSpan(ctx, fqdn+"/NotificationChannelsClient.List")
403		defer func() {
404			sc := -1
405			if result.Response().Response.Response != nil {
406				sc = result.page.Response().Response.Response.StatusCode
407			}
408			tracing.EndSpan(ctx, sc, err)
409		}()
410	}
411	result.page, err = client.List(ctx, resourceGroupName, labName, expand, filter, top, orderby)
412	return
413}
414
415// Notify send notification to provided channel.
416// Parameters:
417// resourceGroupName - the name of the resource group.
418// labName - the name of the lab.
419// name - the name of the notificationChannel.
420// notifyParameters - properties for generating a Notification.
421func (client NotificationChannelsClient) Notify(ctx context.Context, resourceGroupName string, labName string, name string, notifyParameters NotifyParameters) (result autorest.Response, err error) {
422	if tracing.IsEnabled() {
423		ctx = tracing.StartSpan(ctx, fqdn+"/NotificationChannelsClient.Notify")
424		defer func() {
425			sc := -1
426			if result.Response != nil {
427				sc = result.Response.StatusCode
428			}
429			tracing.EndSpan(ctx, sc, err)
430		}()
431	}
432	req, err := client.NotifyPreparer(ctx, resourceGroupName, labName, name, notifyParameters)
433	if err != nil {
434		err = autorest.NewErrorWithError(err, "dtl.NotificationChannelsClient", "Notify", nil, "Failure preparing request")
435		return
436	}
437
438	resp, err := client.NotifySender(req)
439	if err != nil {
440		result.Response = resp
441		err = autorest.NewErrorWithError(err, "dtl.NotificationChannelsClient", "Notify", resp, "Failure sending request")
442		return
443	}
444
445	result, err = client.NotifyResponder(resp)
446	if err != nil {
447		err = autorest.NewErrorWithError(err, "dtl.NotificationChannelsClient", "Notify", resp, "Failure responding to request")
448		return
449	}
450
451	return
452}
453
454// NotifyPreparer prepares the Notify request.
455func (client NotificationChannelsClient) NotifyPreparer(ctx context.Context, resourceGroupName string, labName string, name string, notifyParameters NotifyParameters) (*http.Request, error) {
456	pathParameters := map[string]interface{}{
457		"labName":           autorest.Encode("path", labName),
458		"name":              autorest.Encode("path", name),
459		"resourceGroupName": autorest.Encode("path", resourceGroupName),
460		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
461	}
462
463	const APIVersion = "2016-05-15"
464	queryParameters := map[string]interface{}{
465		"api-version": APIVersion,
466	}
467
468	preparer := autorest.CreatePreparer(
469		autorest.AsContentType("application/json; charset=utf-8"),
470		autorest.AsPost(),
471		autorest.WithBaseURL(client.BaseURI),
472		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/notificationchannels/{name}/notify", pathParameters),
473		autorest.WithJSON(notifyParameters),
474		autorest.WithQueryParameters(queryParameters))
475	return preparer.Prepare((&http.Request{}).WithContext(ctx))
476}
477
478// NotifySender sends the Notify request. The method will close the
479// http.Response Body if it receives an error.
480func (client NotificationChannelsClient) NotifySender(req *http.Request) (*http.Response, error) {
481	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
482}
483
484// NotifyResponder handles the response to the Notify request. The method always
485// closes the http.Response Body.
486func (client NotificationChannelsClient) NotifyResponder(resp *http.Response) (result autorest.Response, err error) {
487	err = autorest.Respond(
488		resp,
489		azure.WithErrorUnlessStatusCode(http.StatusOK),
490		autorest.ByClosing())
491	result.Response = resp
492	return
493}
494
495// Update modify properties of notification channels.
496// Parameters:
497// resourceGroupName - the name of the resource group.
498// labName - the name of the lab.
499// name - the name of the notificationChannel.
500// notificationChannel - a notification.
501func (client NotificationChannelsClient) Update(ctx context.Context, resourceGroupName string, labName string, name string, notificationChannel NotificationChannelFragment) (result NotificationChannel, err error) {
502	if tracing.IsEnabled() {
503		ctx = tracing.StartSpan(ctx, fqdn+"/NotificationChannelsClient.Update")
504		defer func() {
505			sc := -1
506			if result.Response.Response != nil {
507				sc = result.Response.Response.StatusCode
508			}
509			tracing.EndSpan(ctx, sc, err)
510		}()
511	}
512	req, err := client.UpdatePreparer(ctx, resourceGroupName, labName, name, notificationChannel)
513	if err != nil {
514		err = autorest.NewErrorWithError(err, "dtl.NotificationChannelsClient", "Update", nil, "Failure preparing request")
515		return
516	}
517
518	resp, err := client.UpdateSender(req)
519	if err != nil {
520		result.Response = autorest.Response{Response: resp}
521		err = autorest.NewErrorWithError(err, "dtl.NotificationChannelsClient", "Update", resp, "Failure sending request")
522		return
523	}
524
525	result, err = client.UpdateResponder(resp)
526	if err != nil {
527		err = autorest.NewErrorWithError(err, "dtl.NotificationChannelsClient", "Update", resp, "Failure responding to request")
528		return
529	}
530
531	return
532}
533
534// UpdatePreparer prepares the Update request.
535func (client NotificationChannelsClient) UpdatePreparer(ctx context.Context, resourceGroupName string, labName string, name string, notificationChannel NotificationChannelFragment) (*http.Request, error) {
536	pathParameters := map[string]interface{}{
537		"labName":           autorest.Encode("path", labName),
538		"name":              autorest.Encode("path", name),
539		"resourceGroupName": autorest.Encode("path", resourceGroupName),
540		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
541	}
542
543	const APIVersion = "2016-05-15"
544	queryParameters := map[string]interface{}{
545		"api-version": APIVersion,
546	}
547
548	preparer := autorest.CreatePreparer(
549		autorest.AsContentType("application/json; charset=utf-8"),
550		autorest.AsPatch(),
551		autorest.WithBaseURL(client.BaseURI),
552		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/notificationchannels/{name}", pathParameters),
553		autorest.WithJSON(notificationChannel),
554		autorest.WithQueryParameters(queryParameters))
555	return preparer.Prepare((&http.Request{}).WithContext(ctx))
556}
557
558// UpdateSender sends the Update request. The method will close the
559// http.Response Body if it receives an error.
560func (client NotificationChannelsClient) UpdateSender(req *http.Request) (*http.Response, error) {
561	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
562}
563
564// UpdateResponder handles the response to the Update request. The method always
565// closes the http.Response Body.
566func (client NotificationChannelsClient) UpdateResponder(resp *http.Response) (result NotificationChannel, err error) {
567	err = autorest.Respond(
568		resp,
569		azure.WithErrorUnlessStatusCode(http.StatusOK),
570		autorest.ByUnmarshallingJSON(&result),
571		autorest.ByClosing())
572	result.Response = autorest.Response{Response: resp}
573	return
574}
575