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