1package network
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// VpnSitesClient is the network Client
19type VpnSitesClient struct {
20	BaseClient
21}
22
23// NewVpnSitesClient creates an instance of the VpnSitesClient client.
24func NewVpnSitesClient(subscriptionID string) VpnSitesClient {
25	return NewVpnSitesClientWithBaseURI(DefaultBaseURI, subscriptionID)
26}
27
28// NewVpnSitesClientWithBaseURI creates an instance of the VpnSitesClient client using a custom endpoint.  Use this
29// when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack).
30func NewVpnSitesClientWithBaseURI(baseURI string, subscriptionID string) VpnSitesClient {
31	return VpnSitesClient{NewWithBaseURI(baseURI, subscriptionID)}
32}
33
34// CreateOrUpdate creates a VpnSite resource if it doesn't exist else updates the existing VpnSite.
35// Parameters:
36// resourceGroupName - the resource group name of the VpnSite.
37// vpnSiteName - the name of the VpnSite being created or updated.
38// vpnSiteParameters - parameters supplied to create or update VpnSite.
39func (client VpnSitesClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, vpnSiteName string, vpnSiteParameters VpnSite) (result VpnSitesCreateOrUpdateFuture, err error) {
40	if tracing.IsEnabled() {
41		ctx = tracing.StartSpan(ctx, fqdn+"/VpnSitesClient.CreateOrUpdate")
42		defer func() {
43			sc := -1
44			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
45				sc = result.FutureAPI.Response().StatusCode
46			}
47			tracing.EndSpan(ctx, sc, err)
48		}()
49	}
50	if err := validation.Validate([]validation.Validation{
51		{TargetValue: vpnSiteParameters,
52			Constraints: []validation.Constraint{{Target: "vpnSiteParameters.VpnSiteProperties", Name: validation.Null, Rule: false,
53				Chain: []validation.Constraint{{Target: "vpnSiteParameters.VpnSiteProperties.BgpProperties", Name: validation.Null, Rule: false,
54					Chain: []validation.Constraint{{Target: "vpnSiteParameters.VpnSiteProperties.BgpProperties.Asn", Name: validation.Null, Rule: false,
55						Chain: []validation.Constraint{{Target: "vpnSiteParameters.VpnSiteProperties.BgpProperties.Asn", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil},
56							{Target: "vpnSiteParameters.VpnSiteProperties.BgpProperties.Asn", Name: validation.InclusiveMinimum, Rule: int64(0), Chain: nil},
57						}},
58					}},
59				}}}}}); err != nil {
60		return result, validation.NewError("network.VpnSitesClient", "CreateOrUpdate", err.Error())
61	}
62
63	req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, vpnSiteName, vpnSiteParameters)
64	if err != nil {
65		err = autorest.NewErrorWithError(err, "network.VpnSitesClient", "CreateOrUpdate", nil, "Failure preparing request")
66		return
67	}
68
69	result, err = client.CreateOrUpdateSender(req)
70	if err != nil {
71		err = autorest.NewErrorWithError(err, "network.VpnSitesClient", "CreateOrUpdate", nil, "Failure sending request")
72		return
73	}
74
75	return
76}
77
78// CreateOrUpdatePreparer prepares the CreateOrUpdate request.
79func (client VpnSitesClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, vpnSiteName string, vpnSiteParameters VpnSite) (*http.Request, error) {
80	pathParameters := map[string]interface{}{
81		"resourceGroupName": autorest.Encode("path", resourceGroupName),
82		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
83		"vpnSiteName":       autorest.Encode("path", vpnSiteName),
84	}
85
86	const APIVersion = "2021-02-01"
87	queryParameters := map[string]interface{}{
88		"api-version": APIVersion,
89	}
90
91	vpnSiteParameters.Etag = nil
92	preparer := autorest.CreatePreparer(
93		autorest.AsContentType("application/json; charset=utf-8"),
94		autorest.AsPut(),
95		autorest.WithBaseURL(client.BaseURI),
96		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnSites/{vpnSiteName}", pathParameters),
97		autorest.WithJSON(vpnSiteParameters),
98		autorest.WithQueryParameters(queryParameters))
99	return preparer.Prepare((&http.Request{}).WithContext(ctx))
100}
101
102// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the
103// http.Response Body if it receives an error.
104func (client VpnSitesClient) CreateOrUpdateSender(req *http.Request) (future VpnSitesCreateOrUpdateFuture, err error) {
105	var resp *http.Response
106	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
107	if err != nil {
108		return
109	}
110	var azf azure.Future
111	azf, err = azure.NewFutureFromResponse(resp)
112	future.FutureAPI = &azf
113	future.Result = future.result
114	return
115}
116
117// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always
118// closes the http.Response Body.
119func (client VpnSitesClient) CreateOrUpdateResponder(resp *http.Response) (result VpnSite, err error) {
120	err = autorest.Respond(
121		resp,
122		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated),
123		autorest.ByUnmarshallingJSON(&result),
124		autorest.ByClosing())
125	result.Response = autorest.Response{Response: resp}
126	return
127}
128
129// Delete deletes a VpnSite.
130// Parameters:
131// resourceGroupName - the resource group name of the VpnSite.
132// vpnSiteName - the name of the VpnSite being deleted.
133func (client VpnSitesClient) Delete(ctx context.Context, resourceGroupName string, vpnSiteName string) (result VpnSitesDeleteFuture, err error) {
134	if tracing.IsEnabled() {
135		ctx = tracing.StartSpan(ctx, fqdn+"/VpnSitesClient.Delete")
136		defer func() {
137			sc := -1
138			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
139				sc = result.FutureAPI.Response().StatusCode
140			}
141			tracing.EndSpan(ctx, sc, err)
142		}()
143	}
144	req, err := client.DeletePreparer(ctx, resourceGroupName, vpnSiteName)
145	if err != nil {
146		err = autorest.NewErrorWithError(err, "network.VpnSitesClient", "Delete", nil, "Failure preparing request")
147		return
148	}
149
150	result, err = client.DeleteSender(req)
151	if err != nil {
152		err = autorest.NewErrorWithError(err, "network.VpnSitesClient", "Delete", nil, "Failure sending request")
153		return
154	}
155
156	return
157}
158
159// DeletePreparer prepares the Delete request.
160func (client VpnSitesClient) DeletePreparer(ctx context.Context, resourceGroupName string, vpnSiteName string) (*http.Request, error) {
161	pathParameters := map[string]interface{}{
162		"resourceGroupName": autorest.Encode("path", resourceGroupName),
163		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
164		"vpnSiteName":       autorest.Encode("path", vpnSiteName),
165	}
166
167	const APIVersion = "2021-02-01"
168	queryParameters := map[string]interface{}{
169		"api-version": APIVersion,
170	}
171
172	preparer := autorest.CreatePreparer(
173		autorest.AsDelete(),
174		autorest.WithBaseURL(client.BaseURI),
175		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnSites/{vpnSiteName}", pathParameters),
176		autorest.WithQueryParameters(queryParameters))
177	return preparer.Prepare((&http.Request{}).WithContext(ctx))
178}
179
180// DeleteSender sends the Delete request. The method will close the
181// http.Response Body if it receives an error.
182func (client VpnSitesClient) DeleteSender(req *http.Request) (future VpnSitesDeleteFuture, err error) {
183	var resp *http.Response
184	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
185	if err != nil {
186		return
187	}
188	var azf azure.Future
189	azf, err = azure.NewFutureFromResponse(resp)
190	future.FutureAPI = &azf
191	future.Result = future.result
192	return
193}
194
195// DeleteResponder handles the response to the Delete request. The method always
196// closes the http.Response Body.
197func (client VpnSitesClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
198	err = autorest.Respond(
199		resp,
200		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent),
201		autorest.ByClosing())
202	result.Response = resp
203	return
204}
205
206// Get retrieves the details of a VPN site.
207// Parameters:
208// resourceGroupName - the resource group name of the VpnSite.
209// vpnSiteName - the name of the VpnSite being retrieved.
210func (client VpnSitesClient) Get(ctx context.Context, resourceGroupName string, vpnSiteName string) (result VpnSite, err error) {
211	if tracing.IsEnabled() {
212		ctx = tracing.StartSpan(ctx, fqdn+"/VpnSitesClient.Get")
213		defer func() {
214			sc := -1
215			if result.Response.Response != nil {
216				sc = result.Response.Response.StatusCode
217			}
218			tracing.EndSpan(ctx, sc, err)
219		}()
220	}
221	req, err := client.GetPreparer(ctx, resourceGroupName, vpnSiteName)
222	if err != nil {
223		err = autorest.NewErrorWithError(err, "network.VpnSitesClient", "Get", nil, "Failure preparing request")
224		return
225	}
226
227	resp, err := client.GetSender(req)
228	if err != nil {
229		result.Response = autorest.Response{Response: resp}
230		err = autorest.NewErrorWithError(err, "network.VpnSitesClient", "Get", resp, "Failure sending request")
231		return
232	}
233
234	result, err = client.GetResponder(resp)
235	if err != nil {
236		err = autorest.NewErrorWithError(err, "network.VpnSitesClient", "Get", resp, "Failure responding to request")
237		return
238	}
239
240	return
241}
242
243// GetPreparer prepares the Get request.
244func (client VpnSitesClient) GetPreparer(ctx context.Context, resourceGroupName string, vpnSiteName string) (*http.Request, error) {
245	pathParameters := map[string]interface{}{
246		"resourceGroupName": autorest.Encode("path", resourceGroupName),
247		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
248		"vpnSiteName":       autorest.Encode("path", vpnSiteName),
249	}
250
251	const APIVersion = "2021-02-01"
252	queryParameters := map[string]interface{}{
253		"api-version": APIVersion,
254	}
255
256	preparer := autorest.CreatePreparer(
257		autorest.AsGet(),
258		autorest.WithBaseURL(client.BaseURI),
259		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnSites/{vpnSiteName}", pathParameters),
260		autorest.WithQueryParameters(queryParameters))
261	return preparer.Prepare((&http.Request{}).WithContext(ctx))
262}
263
264// GetSender sends the Get request. The method will close the
265// http.Response Body if it receives an error.
266func (client VpnSitesClient) GetSender(req *http.Request) (*http.Response, error) {
267	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
268}
269
270// GetResponder handles the response to the Get request. The method always
271// closes the http.Response Body.
272func (client VpnSitesClient) GetResponder(resp *http.Response) (result VpnSite, err error) {
273	err = autorest.Respond(
274		resp,
275		azure.WithErrorUnlessStatusCode(http.StatusOK),
276		autorest.ByUnmarshallingJSON(&result),
277		autorest.ByClosing())
278	result.Response = autorest.Response{Response: resp}
279	return
280}
281
282// List lists all the VpnSites in a subscription.
283func (client VpnSitesClient) List(ctx context.Context) (result ListVpnSitesResultPage, err error) {
284	if tracing.IsEnabled() {
285		ctx = tracing.StartSpan(ctx, fqdn+"/VpnSitesClient.List")
286		defer func() {
287			sc := -1
288			if result.lvsr.Response.Response != nil {
289				sc = result.lvsr.Response.Response.StatusCode
290			}
291			tracing.EndSpan(ctx, sc, err)
292		}()
293	}
294	result.fn = client.listNextResults
295	req, err := client.ListPreparer(ctx)
296	if err != nil {
297		err = autorest.NewErrorWithError(err, "network.VpnSitesClient", "List", nil, "Failure preparing request")
298		return
299	}
300
301	resp, err := client.ListSender(req)
302	if err != nil {
303		result.lvsr.Response = autorest.Response{Response: resp}
304		err = autorest.NewErrorWithError(err, "network.VpnSitesClient", "List", resp, "Failure sending request")
305		return
306	}
307
308	result.lvsr, err = client.ListResponder(resp)
309	if err != nil {
310		err = autorest.NewErrorWithError(err, "network.VpnSitesClient", "List", resp, "Failure responding to request")
311		return
312	}
313	if result.lvsr.hasNextLink() && result.lvsr.IsEmpty() {
314		err = result.NextWithContext(ctx)
315		return
316	}
317
318	return
319}
320
321// ListPreparer prepares the List request.
322func (client VpnSitesClient) ListPreparer(ctx context.Context) (*http.Request, error) {
323	pathParameters := map[string]interface{}{
324		"subscriptionId": autorest.Encode("path", client.SubscriptionID),
325	}
326
327	const APIVersion = "2021-02-01"
328	queryParameters := map[string]interface{}{
329		"api-version": APIVersion,
330	}
331
332	preparer := autorest.CreatePreparer(
333		autorest.AsGet(),
334		autorest.WithBaseURL(client.BaseURI),
335		autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Network/vpnSites", pathParameters),
336		autorest.WithQueryParameters(queryParameters))
337	return preparer.Prepare((&http.Request{}).WithContext(ctx))
338}
339
340// ListSender sends the List request. The method will close the
341// http.Response Body if it receives an error.
342func (client VpnSitesClient) ListSender(req *http.Request) (*http.Response, error) {
343	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
344}
345
346// ListResponder handles the response to the List request. The method always
347// closes the http.Response Body.
348func (client VpnSitesClient) ListResponder(resp *http.Response) (result ListVpnSitesResult, err error) {
349	err = autorest.Respond(
350		resp,
351		azure.WithErrorUnlessStatusCode(http.StatusOK),
352		autorest.ByUnmarshallingJSON(&result),
353		autorest.ByClosing())
354	result.Response = autorest.Response{Response: resp}
355	return
356}
357
358// listNextResults retrieves the next set of results, if any.
359func (client VpnSitesClient) listNextResults(ctx context.Context, lastResults ListVpnSitesResult) (result ListVpnSitesResult, err error) {
360	req, err := lastResults.listVpnSitesResultPreparer(ctx)
361	if err != nil {
362		return result, autorest.NewErrorWithError(err, "network.VpnSitesClient", "listNextResults", nil, "Failure preparing next results request")
363	}
364	if req == nil {
365		return
366	}
367	resp, err := client.ListSender(req)
368	if err != nil {
369		result.Response = autorest.Response{Response: resp}
370		return result, autorest.NewErrorWithError(err, "network.VpnSitesClient", "listNextResults", resp, "Failure sending next results request")
371	}
372	result, err = client.ListResponder(resp)
373	if err != nil {
374		err = autorest.NewErrorWithError(err, "network.VpnSitesClient", "listNextResults", resp, "Failure responding to next results request")
375	}
376	return
377}
378
379// ListComplete enumerates all values, automatically crossing page boundaries as required.
380func (client VpnSitesClient) ListComplete(ctx context.Context) (result ListVpnSitesResultIterator, err error) {
381	if tracing.IsEnabled() {
382		ctx = tracing.StartSpan(ctx, fqdn+"/VpnSitesClient.List")
383		defer func() {
384			sc := -1
385			if result.Response().Response.Response != nil {
386				sc = result.page.Response().Response.Response.StatusCode
387			}
388			tracing.EndSpan(ctx, sc, err)
389		}()
390	}
391	result.page, err = client.List(ctx)
392	return
393}
394
395// ListByResourceGroup lists all the vpnSites in a resource group.
396// Parameters:
397// resourceGroupName - the resource group name of the VpnSite.
398func (client VpnSitesClient) ListByResourceGroup(ctx context.Context, resourceGroupName string) (result ListVpnSitesResultPage, err error) {
399	if tracing.IsEnabled() {
400		ctx = tracing.StartSpan(ctx, fqdn+"/VpnSitesClient.ListByResourceGroup")
401		defer func() {
402			sc := -1
403			if result.lvsr.Response.Response != nil {
404				sc = result.lvsr.Response.Response.StatusCode
405			}
406			tracing.EndSpan(ctx, sc, err)
407		}()
408	}
409	result.fn = client.listByResourceGroupNextResults
410	req, err := client.ListByResourceGroupPreparer(ctx, resourceGroupName)
411	if err != nil {
412		err = autorest.NewErrorWithError(err, "network.VpnSitesClient", "ListByResourceGroup", nil, "Failure preparing request")
413		return
414	}
415
416	resp, err := client.ListByResourceGroupSender(req)
417	if err != nil {
418		result.lvsr.Response = autorest.Response{Response: resp}
419		err = autorest.NewErrorWithError(err, "network.VpnSitesClient", "ListByResourceGroup", resp, "Failure sending request")
420		return
421	}
422
423	result.lvsr, err = client.ListByResourceGroupResponder(resp)
424	if err != nil {
425		err = autorest.NewErrorWithError(err, "network.VpnSitesClient", "ListByResourceGroup", resp, "Failure responding to request")
426		return
427	}
428	if result.lvsr.hasNextLink() && result.lvsr.IsEmpty() {
429		err = result.NextWithContext(ctx)
430		return
431	}
432
433	return
434}
435
436// ListByResourceGroupPreparer prepares the ListByResourceGroup request.
437func (client VpnSitesClient) ListByResourceGroupPreparer(ctx context.Context, resourceGroupName string) (*http.Request, error) {
438	pathParameters := map[string]interface{}{
439		"resourceGroupName": autorest.Encode("path", resourceGroupName),
440		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
441	}
442
443	const APIVersion = "2021-02-01"
444	queryParameters := map[string]interface{}{
445		"api-version": APIVersion,
446	}
447
448	preparer := autorest.CreatePreparer(
449		autorest.AsGet(),
450		autorest.WithBaseURL(client.BaseURI),
451		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnSites", pathParameters),
452		autorest.WithQueryParameters(queryParameters))
453	return preparer.Prepare((&http.Request{}).WithContext(ctx))
454}
455
456// ListByResourceGroupSender sends the ListByResourceGroup request. The method will close the
457// http.Response Body if it receives an error.
458func (client VpnSitesClient) ListByResourceGroupSender(req *http.Request) (*http.Response, error) {
459	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
460}
461
462// ListByResourceGroupResponder handles the response to the ListByResourceGroup request. The method always
463// closes the http.Response Body.
464func (client VpnSitesClient) ListByResourceGroupResponder(resp *http.Response) (result ListVpnSitesResult, err error) {
465	err = autorest.Respond(
466		resp,
467		azure.WithErrorUnlessStatusCode(http.StatusOK),
468		autorest.ByUnmarshallingJSON(&result),
469		autorest.ByClosing())
470	result.Response = autorest.Response{Response: resp}
471	return
472}
473
474// listByResourceGroupNextResults retrieves the next set of results, if any.
475func (client VpnSitesClient) listByResourceGroupNextResults(ctx context.Context, lastResults ListVpnSitesResult) (result ListVpnSitesResult, err error) {
476	req, err := lastResults.listVpnSitesResultPreparer(ctx)
477	if err != nil {
478		return result, autorest.NewErrorWithError(err, "network.VpnSitesClient", "listByResourceGroupNextResults", nil, "Failure preparing next results request")
479	}
480	if req == nil {
481		return
482	}
483	resp, err := client.ListByResourceGroupSender(req)
484	if err != nil {
485		result.Response = autorest.Response{Response: resp}
486		return result, autorest.NewErrorWithError(err, "network.VpnSitesClient", "listByResourceGroupNextResults", resp, "Failure sending next results request")
487	}
488	result, err = client.ListByResourceGroupResponder(resp)
489	if err != nil {
490		err = autorest.NewErrorWithError(err, "network.VpnSitesClient", "listByResourceGroupNextResults", resp, "Failure responding to next results request")
491	}
492	return
493}
494
495// ListByResourceGroupComplete enumerates all values, automatically crossing page boundaries as required.
496func (client VpnSitesClient) ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result ListVpnSitesResultIterator, err error) {
497	if tracing.IsEnabled() {
498		ctx = tracing.StartSpan(ctx, fqdn+"/VpnSitesClient.ListByResourceGroup")
499		defer func() {
500			sc := -1
501			if result.Response().Response.Response != nil {
502				sc = result.page.Response().Response.Response.StatusCode
503			}
504			tracing.EndSpan(ctx, sc, err)
505		}()
506	}
507	result.page, err = client.ListByResourceGroup(ctx, resourceGroupName)
508	return
509}
510
511// UpdateTags updates VpnSite tags.
512// Parameters:
513// resourceGroupName - the resource group name of the VpnSite.
514// vpnSiteName - the name of the VpnSite being updated.
515// vpnSiteParameters - parameters supplied to update VpnSite tags.
516func (client VpnSitesClient) UpdateTags(ctx context.Context, resourceGroupName string, vpnSiteName string, vpnSiteParameters TagsObject) (result VpnSite, err error) {
517	if tracing.IsEnabled() {
518		ctx = tracing.StartSpan(ctx, fqdn+"/VpnSitesClient.UpdateTags")
519		defer func() {
520			sc := -1
521			if result.Response.Response != nil {
522				sc = result.Response.Response.StatusCode
523			}
524			tracing.EndSpan(ctx, sc, err)
525		}()
526	}
527	req, err := client.UpdateTagsPreparer(ctx, resourceGroupName, vpnSiteName, vpnSiteParameters)
528	if err != nil {
529		err = autorest.NewErrorWithError(err, "network.VpnSitesClient", "UpdateTags", nil, "Failure preparing request")
530		return
531	}
532
533	resp, err := client.UpdateTagsSender(req)
534	if err != nil {
535		result.Response = autorest.Response{Response: resp}
536		err = autorest.NewErrorWithError(err, "network.VpnSitesClient", "UpdateTags", resp, "Failure sending request")
537		return
538	}
539
540	result, err = client.UpdateTagsResponder(resp)
541	if err != nil {
542		err = autorest.NewErrorWithError(err, "network.VpnSitesClient", "UpdateTags", resp, "Failure responding to request")
543		return
544	}
545
546	return
547}
548
549// UpdateTagsPreparer prepares the UpdateTags request.
550func (client VpnSitesClient) UpdateTagsPreparer(ctx context.Context, resourceGroupName string, vpnSiteName string, vpnSiteParameters TagsObject) (*http.Request, error) {
551	pathParameters := map[string]interface{}{
552		"resourceGroupName": autorest.Encode("path", resourceGroupName),
553		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
554		"vpnSiteName":       autorest.Encode("path", vpnSiteName),
555	}
556
557	const APIVersion = "2021-02-01"
558	queryParameters := map[string]interface{}{
559		"api-version": APIVersion,
560	}
561
562	preparer := autorest.CreatePreparer(
563		autorest.AsContentType("application/json; charset=utf-8"),
564		autorest.AsPatch(),
565		autorest.WithBaseURL(client.BaseURI),
566		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnSites/{vpnSiteName}", pathParameters),
567		autorest.WithJSON(vpnSiteParameters),
568		autorest.WithQueryParameters(queryParameters))
569	return preparer.Prepare((&http.Request{}).WithContext(ctx))
570}
571
572// UpdateTagsSender sends the UpdateTags request. The method will close the
573// http.Response Body if it receives an error.
574func (client VpnSitesClient) UpdateTagsSender(req *http.Request) (*http.Response, error) {
575	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
576}
577
578// UpdateTagsResponder handles the response to the UpdateTags request. The method always
579// closes the http.Response Body.
580func (client VpnSitesClient) UpdateTagsResponder(resp *http.Response) (result VpnSite, err error) {
581	err = autorest.Respond(
582		resp,
583		azure.WithErrorUnlessStatusCode(http.StatusOK),
584		autorest.ByUnmarshallingJSON(&result),
585		autorest.ByClosing())
586	result.Response = autorest.Response{Response: resp}
587	return
588}
589