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// LongTermRetentionManagedInstanceBackupsClient is the the Azure SQL Database management API provides a RESTful set of
18// web services that interact with Azure SQL Database services to manage your databases. The API enables you to create,
19// retrieve, update, and delete databases.
20type LongTermRetentionManagedInstanceBackupsClient struct {
21	BaseClient
22}
23
24// NewLongTermRetentionManagedInstanceBackupsClient creates an instance of the
25// LongTermRetentionManagedInstanceBackupsClient client.
26func NewLongTermRetentionManagedInstanceBackupsClient(subscriptionID string) LongTermRetentionManagedInstanceBackupsClient {
27	return NewLongTermRetentionManagedInstanceBackupsClientWithBaseURI(DefaultBaseURI, subscriptionID)
28}
29
30// NewLongTermRetentionManagedInstanceBackupsClientWithBaseURI creates an instance of the
31// LongTermRetentionManagedInstanceBackupsClient client using a custom endpoint.  Use this when interacting with an
32// Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack).
33func NewLongTermRetentionManagedInstanceBackupsClientWithBaseURI(baseURI string, subscriptionID string) LongTermRetentionManagedInstanceBackupsClient {
34	return LongTermRetentionManagedInstanceBackupsClient{NewWithBaseURI(baseURI, subscriptionID)}
35}
36
37// Delete deletes a long term retention backup.
38// Parameters:
39// locationName - the location of the database.
40// managedInstanceName - the name of the managed instance.
41// databaseName - the name of the managed database.
42// backupName - the backup name.
43func (client LongTermRetentionManagedInstanceBackupsClient) Delete(ctx context.Context, locationName string, managedInstanceName string, databaseName string, backupName string) (result LongTermRetentionManagedInstanceBackupsDeleteFuture, err error) {
44	if tracing.IsEnabled() {
45		ctx = tracing.StartSpan(ctx, fqdn+"/LongTermRetentionManagedInstanceBackupsClient.Delete")
46		defer func() {
47			sc := -1
48			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
49				sc = result.FutureAPI.Response().StatusCode
50			}
51			tracing.EndSpan(ctx, sc, err)
52		}()
53	}
54	req, err := client.DeletePreparer(ctx, locationName, managedInstanceName, databaseName, backupName)
55	if err != nil {
56		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "Delete", nil, "Failure preparing request")
57		return
58	}
59
60	result, err = client.DeleteSender(req)
61	if err != nil {
62		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "Delete", nil, "Failure sending request")
63		return
64	}
65
66	return
67}
68
69// DeletePreparer prepares the Delete request.
70func (client LongTermRetentionManagedInstanceBackupsClient) DeletePreparer(ctx context.Context, locationName string, managedInstanceName string, databaseName string, backupName string) (*http.Request, error) {
71	pathParameters := map[string]interface{}{
72		"backupName":          autorest.Encode("path", backupName),
73		"databaseName":        autorest.Encode("path", databaseName),
74		"locationName":        autorest.Encode("path", locationName),
75		"managedInstanceName": autorest.Encode("path", managedInstanceName),
76		"subscriptionId":      autorest.Encode("path", client.SubscriptionID),
77	}
78
79	const APIVersion = "2018-06-01-preview"
80	queryParameters := map[string]interface{}{
81		"api-version": APIVersion,
82	}
83
84	preparer := autorest.CreatePreparer(
85		autorest.AsDelete(),
86		autorest.WithBaseURL(client.BaseURI),
87		autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationName}/longTermRetentionManagedInstances/{managedInstanceName}/longTermRetentionDatabases/{databaseName}/longTermRetentionManagedInstanceBackups/{backupName}", pathParameters),
88		autorest.WithQueryParameters(queryParameters))
89	return preparer.Prepare((&http.Request{}).WithContext(ctx))
90}
91
92// DeleteSender sends the Delete request. The method will close the
93// http.Response Body if it receives an error.
94func (client LongTermRetentionManagedInstanceBackupsClient) DeleteSender(req *http.Request) (future LongTermRetentionManagedInstanceBackupsDeleteFuture, 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// DeleteResponder handles the response to the Delete request. The method always
108// closes the http.Response Body.
109func (client LongTermRetentionManagedInstanceBackupsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
110	err = autorest.Respond(
111		resp,
112		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted),
113		autorest.ByClosing())
114	result.Response = resp
115	return
116}
117
118// DeleteByResourceGroup deletes a long term retention backup.
119// Parameters:
120// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value
121// from the Azure Resource Manager API or the portal.
122// locationName - the location of the database
123// managedInstanceName - the name of the managed instance.
124// databaseName - the name of the managed database.
125// backupName - the backup name.
126func (client LongTermRetentionManagedInstanceBackupsClient) DeleteByResourceGroup(ctx context.Context, resourceGroupName string, locationName string, managedInstanceName string, databaseName string, backupName string) (result LongTermRetentionManagedInstanceBackupsDeleteByResourceGroupFuture, err error) {
127	if tracing.IsEnabled() {
128		ctx = tracing.StartSpan(ctx, fqdn+"/LongTermRetentionManagedInstanceBackupsClient.DeleteByResourceGroup")
129		defer func() {
130			sc := -1
131			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
132				sc = result.FutureAPI.Response().StatusCode
133			}
134			tracing.EndSpan(ctx, sc, err)
135		}()
136	}
137	req, err := client.DeleteByResourceGroupPreparer(ctx, resourceGroupName, locationName, managedInstanceName, databaseName, backupName)
138	if err != nil {
139		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "DeleteByResourceGroup", nil, "Failure preparing request")
140		return
141	}
142
143	result, err = client.DeleteByResourceGroupSender(req)
144	if err != nil {
145		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "DeleteByResourceGroup", nil, "Failure sending request")
146		return
147	}
148
149	return
150}
151
152// DeleteByResourceGroupPreparer prepares the DeleteByResourceGroup request.
153func (client LongTermRetentionManagedInstanceBackupsClient) DeleteByResourceGroupPreparer(ctx context.Context, resourceGroupName string, locationName string, managedInstanceName string, databaseName string, backupName string) (*http.Request, error) {
154	pathParameters := map[string]interface{}{
155		"backupName":          autorest.Encode("path", backupName),
156		"databaseName":        autorest.Encode("path", databaseName),
157		"locationName":        autorest.Encode("path", locationName),
158		"managedInstanceName": autorest.Encode("path", managedInstanceName),
159		"resourceGroupName":   autorest.Encode("path", resourceGroupName),
160		"subscriptionId":      autorest.Encode("path", client.SubscriptionID),
161	}
162
163	const APIVersion = "2018-06-01-preview"
164	queryParameters := map[string]interface{}{
165		"api-version": APIVersion,
166	}
167
168	preparer := autorest.CreatePreparer(
169		autorest.AsDelete(),
170		autorest.WithBaseURL(client.BaseURI),
171		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/locations/{locationName}/longTermRetentionManagedInstances/{managedInstanceName}/longTermRetentionDatabases/{databaseName}/longTermRetentionManagedInstanceBackups/{backupName}", pathParameters),
172		autorest.WithQueryParameters(queryParameters))
173	return preparer.Prepare((&http.Request{}).WithContext(ctx))
174}
175
176// DeleteByResourceGroupSender sends the DeleteByResourceGroup request. The method will close the
177// http.Response Body if it receives an error.
178func (client LongTermRetentionManagedInstanceBackupsClient) DeleteByResourceGroupSender(req *http.Request) (future LongTermRetentionManagedInstanceBackupsDeleteByResourceGroupFuture, err error) {
179	var resp *http.Response
180	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
181	if err != nil {
182		return
183	}
184	var azf azure.Future
185	azf, err = azure.NewFutureFromResponse(resp)
186	future.FutureAPI = &azf
187	future.Result = future.result
188	return
189}
190
191// DeleteByResourceGroupResponder handles the response to the DeleteByResourceGroup request. The method always
192// closes the http.Response Body.
193func (client LongTermRetentionManagedInstanceBackupsClient) DeleteByResourceGroupResponder(resp *http.Response) (result autorest.Response, err error) {
194	err = autorest.Respond(
195		resp,
196		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted),
197		autorest.ByClosing())
198	result.Response = resp
199	return
200}
201
202// Get gets a long term retention backup for a managed database.
203// Parameters:
204// locationName - the location of the database.
205// managedInstanceName - the name of the managed instance.
206// databaseName - the name of the managed database.
207// backupName - the backup name.
208func (client LongTermRetentionManagedInstanceBackupsClient) Get(ctx context.Context, locationName string, managedInstanceName string, databaseName string, backupName string) (result ManagedInstanceLongTermRetentionBackup, err error) {
209	if tracing.IsEnabled() {
210		ctx = tracing.StartSpan(ctx, fqdn+"/LongTermRetentionManagedInstanceBackupsClient.Get")
211		defer func() {
212			sc := -1
213			if result.Response.Response != nil {
214				sc = result.Response.Response.StatusCode
215			}
216			tracing.EndSpan(ctx, sc, err)
217		}()
218	}
219	req, err := client.GetPreparer(ctx, locationName, managedInstanceName, databaseName, backupName)
220	if err != nil {
221		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "Get", nil, "Failure preparing request")
222		return
223	}
224
225	resp, err := client.GetSender(req)
226	if err != nil {
227		result.Response = autorest.Response{Response: resp}
228		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "Get", resp, "Failure sending request")
229		return
230	}
231
232	result, err = client.GetResponder(resp)
233	if err != nil {
234		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "Get", resp, "Failure responding to request")
235		return
236	}
237
238	return
239}
240
241// GetPreparer prepares the Get request.
242func (client LongTermRetentionManagedInstanceBackupsClient) GetPreparer(ctx context.Context, locationName string, managedInstanceName string, databaseName string, backupName string) (*http.Request, error) {
243	pathParameters := map[string]interface{}{
244		"backupName":          autorest.Encode("path", backupName),
245		"databaseName":        autorest.Encode("path", databaseName),
246		"locationName":        autorest.Encode("path", locationName),
247		"managedInstanceName": autorest.Encode("path", managedInstanceName),
248		"subscriptionId":      autorest.Encode("path", client.SubscriptionID),
249	}
250
251	const APIVersion = "2018-06-01-preview"
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}/providers/Microsoft.Sql/locations/{locationName}/longTermRetentionManagedInstances/{managedInstanceName}/longTermRetentionDatabases/{databaseName}/longTermRetentionManagedInstanceBackups/{backupName}", 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 LongTermRetentionManagedInstanceBackupsClient) 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 LongTermRetentionManagedInstanceBackupsClient) GetResponder(resp *http.Response) (result ManagedInstanceLongTermRetentionBackup, 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// GetByResourceGroup gets a long term retention backup for a managed database.
283// Parameters:
284// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value
285// from the Azure Resource Manager API or the portal.
286// locationName - the location of the database.
287// managedInstanceName - the name of the managed instance.
288// databaseName - the name of the managed database.
289// backupName - the backup name.
290func (client LongTermRetentionManagedInstanceBackupsClient) GetByResourceGroup(ctx context.Context, resourceGroupName string, locationName string, managedInstanceName string, databaseName string, backupName string) (result ManagedInstanceLongTermRetentionBackup, err error) {
291	if tracing.IsEnabled() {
292		ctx = tracing.StartSpan(ctx, fqdn+"/LongTermRetentionManagedInstanceBackupsClient.GetByResourceGroup")
293		defer func() {
294			sc := -1
295			if result.Response.Response != nil {
296				sc = result.Response.Response.StatusCode
297			}
298			tracing.EndSpan(ctx, sc, err)
299		}()
300	}
301	req, err := client.GetByResourceGroupPreparer(ctx, resourceGroupName, locationName, managedInstanceName, databaseName, backupName)
302	if err != nil {
303		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "GetByResourceGroup", nil, "Failure preparing request")
304		return
305	}
306
307	resp, err := client.GetByResourceGroupSender(req)
308	if err != nil {
309		result.Response = autorest.Response{Response: resp}
310		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "GetByResourceGroup", resp, "Failure sending request")
311		return
312	}
313
314	result, err = client.GetByResourceGroupResponder(resp)
315	if err != nil {
316		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "GetByResourceGroup", resp, "Failure responding to request")
317		return
318	}
319
320	return
321}
322
323// GetByResourceGroupPreparer prepares the GetByResourceGroup request.
324func (client LongTermRetentionManagedInstanceBackupsClient) GetByResourceGroupPreparer(ctx context.Context, resourceGroupName string, locationName string, managedInstanceName string, databaseName string, backupName string) (*http.Request, error) {
325	pathParameters := map[string]interface{}{
326		"backupName":          autorest.Encode("path", backupName),
327		"databaseName":        autorest.Encode("path", databaseName),
328		"locationName":        autorest.Encode("path", locationName),
329		"managedInstanceName": autorest.Encode("path", managedInstanceName),
330		"resourceGroupName":   autorest.Encode("path", resourceGroupName),
331		"subscriptionId":      autorest.Encode("path", client.SubscriptionID),
332	}
333
334	const APIVersion = "2018-06-01-preview"
335	queryParameters := map[string]interface{}{
336		"api-version": APIVersion,
337	}
338
339	preparer := autorest.CreatePreparer(
340		autorest.AsGet(),
341		autorest.WithBaseURL(client.BaseURI),
342		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/locations/{locationName}/longTermRetentionManagedInstances/{managedInstanceName}/longTermRetentionDatabases/{databaseName}/longTermRetentionManagedInstanceBackups/{backupName}", pathParameters),
343		autorest.WithQueryParameters(queryParameters))
344	return preparer.Prepare((&http.Request{}).WithContext(ctx))
345}
346
347// GetByResourceGroupSender sends the GetByResourceGroup request. The method will close the
348// http.Response Body if it receives an error.
349func (client LongTermRetentionManagedInstanceBackupsClient) GetByResourceGroupSender(req *http.Request) (*http.Response, error) {
350	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
351}
352
353// GetByResourceGroupResponder handles the response to the GetByResourceGroup request. The method always
354// closes the http.Response Body.
355func (client LongTermRetentionManagedInstanceBackupsClient) GetByResourceGroupResponder(resp *http.Response) (result ManagedInstanceLongTermRetentionBackup, err error) {
356	err = autorest.Respond(
357		resp,
358		azure.WithErrorUnlessStatusCode(http.StatusOK),
359		autorest.ByUnmarshallingJSON(&result),
360		autorest.ByClosing())
361	result.Response = autorest.Response{Response: resp}
362	return
363}
364
365// ListByDatabase lists all long term retention backups for a managed database.
366// Parameters:
367// locationName - the location of the database.
368// managedInstanceName - the name of the managed instance.
369// databaseName - the name of the managed database.
370// onlyLatestPerDatabase - whether or not to only get the latest backup for each database.
371// databaseState - whether to query against just live databases, just deleted databases, or all databases.
372func (client LongTermRetentionManagedInstanceBackupsClient) ListByDatabase(ctx context.Context, locationName string, managedInstanceName string, databaseName string, onlyLatestPerDatabase *bool, databaseState DatabaseState) (result ManagedInstanceLongTermRetentionBackupListResultPage, err error) {
373	if tracing.IsEnabled() {
374		ctx = tracing.StartSpan(ctx, fqdn+"/LongTermRetentionManagedInstanceBackupsClient.ListByDatabase")
375		defer func() {
376			sc := -1
377			if result.miltrblr.Response.Response != nil {
378				sc = result.miltrblr.Response.Response.StatusCode
379			}
380			tracing.EndSpan(ctx, sc, err)
381		}()
382	}
383	result.fn = client.listByDatabaseNextResults
384	req, err := client.ListByDatabasePreparer(ctx, locationName, managedInstanceName, databaseName, onlyLatestPerDatabase, databaseState)
385	if err != nil {
386		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "ListByDatabase", nil, "Failure preparing request")
387		return
388	}
389
390	resp, err := client.ListByDatabaseSender(req)
391	if err != nil {
392		result.miltrblr.Response = autorest.Response{Response: resp}
393		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "ListByDatabase", resp, "Failure sending request")
394		return
395	}
396
397	result.miltrblr, err = client.ListByDatabaseResponder(resp)
398	if err != nil {
399		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "ListByDatabase", resp, "Failure responding to request")
400		return
401	}
402	if result.miltrblr.hasNextLink() && result.miltrblr.IsEmpty() {
403		err = result.NextWithContext(ctx)
404		return
405	}
406
407	return
408}
409
410// ListByDatabasePreparer prepares the ListByDatabase request.
411func (client LongTermRetentionManagedInstanceBackupsClient) ListByDatabasePreparer(ctx context.Context, locationName string, managedInstanceName string, databaseName string, onlyLatestPerDatabase *bool, databaseState DatabaseState) (*http.Request, error) {
412	pathParameters := map[string]interface{}{
413		"databaseName":        autorest.Encode("path", databaseName),
414		"locationName":        autorest.Encode("path", locationName),
415		"managedInstanceName": autorest.Encode("path", managedInstanceName),
416		"subscriptionId":      autorest.Encode("path", client.SubscriptionID),
417	}
418
419	const APIVersion = "2018-06-01-preview"
420	queryParameters := map[string]interface{}{
421		"api-version": APIVersion,
422	}
423	if onlyLatestPerDatabase != nil {
424		queryParameters["onlyLatestPerDatabase"] = autorest.Encode("query", *onlyLatestPerDatabase)
425	}
426	if len(string(databaseState)) > 0 {
427		queryParameters["databaseState"] = autorest.Encode("query", databaseState)
428	}
429
430	preparer := autorest.CreatePreparer(
431		autorest.AsGet(),
432		autorest.WithBaseURL(client.BaseURI),
433		autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationName}/longTermRetentionManagedInstances/{managedInstanceName}/longTermRetentionDatabases/{databaseName}/longTermRetentionManagedInstanceBackups", pathParameters),
434		autorest.WithQueryParameters(queryParameters))
435	return preparer.Prepare((&http.Request{}).WithContext(ctx))
436}
437
438// ListByDatabaseSender sends the ListByDatabase request. The method will close the
439// http.Response Body if it receives an error.
440func (client LongTermRetentionManagedInstanceBackupsClient) ListByDatabaseSender(req *http.Request) (*http.Response, error) {
441	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
442}
443
444// ListByDatabaseResponder handles the response to the ListByDatabase request. The method always
445// closes the http.Response Body.
446func (client LongTermRetentionManagedInstanceBackupsClient) ListByDatabaseResponder(resp *http.Response) (result ManagedInstanceLongTermRetentionBackupListResult, err error) {
447	err = autorest.Respond(
448		resp,
449		azure.WithErrorUnlessStatusCode(http.StatusOK),
450		autorest.ByUnmarshallingJSON(&result),
451		autorest.ByClosing())
452	result.Response = autorest.Response{Response: resp}
453	return
454}
455
456// listByDatabaseNextResults retrieves the next set of results, if any.
457func (client LongTermRetentionManagedInstanceBackupsClient) listByDatabaseNextResults(ctx context.Context, lastResults ManagedInstanceLongTermRetentionBackupListResult) (result ManagedInstanceLongTermRetentionBackupListResult, err error) {
458	req, err := lastResults.managedInstanceLongTermRetentionBackupListResultPreparer(ctx)
459	if err != nil {
460		return result, autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "listByDatabaseNextResults", nil, "Failure preparing next results request")
461	}
462	if req == nil {
463		return
464	}
465	resp, err := client.ListByDatabaseSender(req)
466	if err != nil {
467		result.Response = autorest.Response{Response: resp}
468		return result, autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "listByDatabaseNextResults", resp, "Failure sending next results request")
469	}
470	result, err = client.ListByDatabaseResponder(resp)
471	if err != nil {
472		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "listByDatabaseNextResults", resp, "Failure responding to next results request")
473	}
474	return
475}
476
477// ListByDatabaseComplete enumerates all values, automatically crossing page boundaries as required.
478func (client LongTermRetentionManagedInstanceBackupsClient) ListByDatabaseComplete(ctx context.Context, locationName string, managedInstanceName string, databaseName string, onlyLatestPerDatabase *bool, databaseState DatabaseState) (result ManagedInstanceLongTermRetentionBackupListResultIterator, err error) {
479	if tracing.IsEnabled() {
480		ctx = tracing.StartSpan(ctx, fqdn+"/LongTermRetentionManagedInstanceBackupsClient.ListByDatabase")
481		defer func() {
482			sc := -1
483			if result.Response().Response.Response != nil {
484				sc = result.page.Response().Response.Response.StatusCode
485			}
486			tracing.EndSpan(ctx, sc, err)
487		}()
488	}
489	result.page, err = client.ListByDatabase(ctx, locationName, managedInstanceName, databaseName, onlyLatestPerDatabase, databaseState)
490	return
491}
492
493// ListByInstance lists the long term retention backups for a given managed instance.
494// Parameters:
495// locationName - the location of the database
496// managedInstanceName - the name of the managed instance.
497// onlyLatestPerDatabase - whether or not to only get the latest backup for each database.
498// databaseState - whether to query against just live databases, just deleted databases, or all databases.
499func (client LongTermRetentionManagedInstanceBackupsClient) ListByInstance(ctx context.Context, locationName string, managedInstanceName string, onlyLatestPerDatabase *bool, databaseState DatabaseState) (result ManagedInstanceLongTermRetentionBackupListResultPage, err error) {
500	if tracing.IsEnabled() {
501		ctx = tracing.StartSpan(ctx, fqdn+"/LongTermRetentionManagedInstanceBackupsClient.ListByInstance")
502		defer func() {
503			sc := -1
504			if result.miltrblr.Response.Response != nil {
505				sc = result.miltrblr.Response.Response.StatusCode
506			}
507			tracing.EndSpan(ctx, sc, err)
508		}()
509	}
510	result.fn = client.listByInstanceNextResults
511	req, err := client.ListByInstancePreparer(ctx, locationName, managedInstanceName, onlyLatestPerDatabase, databaseState)
512	if err != nil {
513		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "ListByInstance", nil, "Failure preparing request")
514		return
515	}
516
517	resp, err := client.ListByInstanceSender(req)
518	if err != nil {
519		result.miltrblr.Response = autorest.Response{Response: resp}
520		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "ListByInstance", resp, "Failure sending request")
521		return
522	}
523
524	result.miltrblr, err = client.ListByInstanceResponder(resp)
525	if err != nil {
526		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "ListByInstance", resp, "Failure responding to request")
527		return
528	}
529	if result.miltrblr.hasNextLink() && result.miltrblr.IsEmpty() {
530		err = result.NextWithContext(ctx)
531		return
532	}
533
534	return
535}
536
537// ListByInstancePreparer prepares the ListByInstance request.
538func (client LongTermRetentionManagedInstanceBackupsClient) ListByInstancePreparer(ctx context.Context, locationName string, managedInstanceName string, onlyLatestPerDatabase *bool, databaseState DatabaseState) (*http.Request, error) {
539	pathParameters := map[string]interface{}{
540		"locationName":        autorest.Encode("path", locationName),
541		"managedInstanceName": autorest.Encode("path", managedInstanceName),
542		"subscriptionId":      autorest.Encode("path", client.SubscriptionID),
543	}
544
545	const APIVersion = "2018-06-01-preview"
546	queryParameters := map[string]interface{}{
547		"api-version": APIVersion,
548	}
549	if onlyLatestPerDatabase != nil {
550		queryParameters["onlyLatestPerDatabase"] = autorest.Encode("query", *onlyLatestPerDatabase)
551	}
552	if len(string(databaseState)) > 0 {
553		queryParameters["databaseState"] = autorest.Encode("query", databaseState)
554	}
555
556	preparer := autorest.CreatePreparer(
557		autorest.AsGet(),
558		autorest.WithBaseURL(client.BaseURI),
559		autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationName}/longTermRetentionManagedInstances/{managedInstanceName}/longTermRetentionManagedInstanceBackups", pathParameters),
560		autorest.WithQueryParameters(queryParameters))
561	return preparer.Prepare((&http.Request{}).WithContext(ctx))
562}
563
564// ListByInstanceSender sends the ListByInstance request. The method will close the
565// http.Response Body if it receives an error.
566func (client LongTermRetentionManagedInstanceBackupsClient) ListByInstanceSender(req *http.Request) (*http.Response, error) {
567	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
568}
569
570// ListByInstanceResponder handles the response to the ListByInstance request. The method always
571// closes the http.Response Body.
572func (client LongTermRetentionManagedInstanceBackupsClient) ListByInstanceResponder(resp *http.Response) (result ManagedInstanceLongTermRetentionBackupListResult, err error) {
573	err = autorest.Respond(
574		resp,
575		azure.WithErrorUnlessStatusCode(http.StatusOK),
576		autorest.ByUnmarshallingJSON(&result),
577		autorest.ByClosing())
578	result.Response = autorest.Response{Response: resp}
579	return
580}
581
582// listByInstanceNextResults retrieves the next set of results, if any.
583func (client LongTermRetentionManagedInstanceBackupsClient) listByInstanceNextResults(ctx context.Context, lastResults ManagedInstanceLongTermRetentionBackupListResult) (result ManagedInstanceLongTermRetentionBackupListResult, err error) {
584	req, err := lastResults.managedInstanceLongTermRetentionBackupListResultPreparer(ctx)
585	if err != nil {
586		return result, autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "listByInstanceNextResults", nil, "Failure preparing next results request")
587	}
588	if req == nil {
589		return
590	}
591	resp, err := client.ListByInstanceSender(req)
592	if err != nil {
593		result.Response = autorest.Response{Response: resp}
594		return result, autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "listByInstanceNextResults", resp, "Failure sending next results request")
595	}
596	result, err = client.ListByInstanceResponder(resp)
597	if err != nil {
598		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "listByInstanceNextResults", resp, "Failure responding to next results request")
599	}
600	return
601}
602
603// ListByInstanceComplete enumerates all values, automatically crossing page boundaries as required.
604func (client LongTermRetentionManagedInstanceBackupsClient) ListByInstanceComplete(ctx context.Context, locationName string, managedInstanceName string, onlyLatestPerDatabase *bool, databaseState DatabaseState) (result ManagedInstanceLongTermRetentionBackupListResultIterator, err error) {
605	if tracing.IsEnabled() {
606		ctx = tracing.StartSpan(ctx, fqdn+"/LongTermRetentionManagedInstanceBackupsClient.ListByInstance")
607		defer func() {
608			sc := -1
609			if result.Response().Response.Response != nil {
610				sc = result.page.Response().Response.Response.StatusCode
611			}
612			tracing.EndSpan(ctx, sc, err)
613		}()
614	}
615	result.page, err = client.ListByInstance(ctx, locationName, managedInstanceName, onlyLatestPerDatabase, databaseState)
616	return
617}
618
619// ListByLocation lists the long term retention backups for managed databases in a given location.
620// Parameters:
621// locationName - the location of the database.
622// onlyLatestPerDatabase - whether or not to only get the latest backup for each database.
623// databaseState - whether to query against just live databases, just deleted databases, or all databases.
624func (client LongTermRetentionManagedInstanceBackupsClient) ListByLocation(ctx context.Context, locationName string, onlyLatestPerDatabase *bool, databaseState DatabaseState) (result ManagedInstanceLongTermRetentionBackupListResultPage, err error) {
625	if tracing.IsEnabled() {
626		ctx = tracing.StartSpan(ctx, fqdn+"/LongTermRetentionManagedInstanceBackupsClient.ListByLocation")
627		defer func() {
628			sc := -1
629			if result.miltrblr.Response.Response != nil {
630				sc = result.miltrblr.Response.Response.StatusCode
631			}
632			tracing.EndSpan(ctx, sc, err)
633		}()
634	}
635	result.fn = client.listByLocationNextResults
636	req, err := client.ListByLocationPreparer(ctx, locationName, onlyLatestPerDatabase, databaseState)
637	if err != nil {
638		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "ListByLocation", nil, "Failure preparing request")
639		return
640	}
641
642	resp, err := client.ListByLocationSender(req)
643	if err != nil {
644		result.miltrblr.Response = autorest.Response{Response: resp}
645		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "ListByLocation", resp, "Failure sending request")
646		return
647	}
648
649	result.miltrblr, err = client.ListByLocationResponder(resp)
650	if err != nil {
651		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "ListByLocation", resp, "Failure responding to request")
652		return
653	}
654	if result.miltrblr.hasNextLink() && result.miltrblr.IsEmpty() {
655		err = result.NextWithContext(ctx)
656		return
657	}
658
659	return
660}
661
662// ListByLocationPreparer prepares the ListByLocation request.
663func (client LongTermRetentionManagedInstanceBackupsClient) ListByLocationPreparer(ctx context.Context, locationName string, onlyLatestPerDatabase *bool, databaseState DatabaseState) (*http.Request, error) {
664	pathParameters := map[string]interface{}{
665		"locationName":   autorest.Encode("path", locationName),
666		"subscriptionId": autorest.Encode("path", client.SubscriptionID),
667	}
668
669	const APIVersion = "2018-06-01-preview"
670	queryParameters := map[string]interface{}{
671		"api-version": APIVersion,
672	}
673	if onlyLatestPerDatabase != nil {
674		queryParameters["onlyLatestPerDatabase"] = autorest.Encode("query", *onlyLatestPerDatabase)
675	}
676	if len(string(databaseState)) > 0 {
677		queryParameters["databaseState"] = autorest.Encode("query", databaseState)
678	}
679
680	preparer := autorest.CreatePreparer(
681		autorest.AsGet(),
682		autorest.WithBaseURL(client.BaseURI),
683		autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationName}/longTermRetentionManagedInstanceBackups", pathParameters),
684		autorest.WithQueryParameters(queryParameters))
685	return preparer.Prepare((&http.Request{}).WithContext(ctx))
686}
687
688// ListByLocationSender sends the ListByLocation request. The method will close the
689// http.Response Body if it receives an error.
690func (client LongTermRetentionManagedInstanceBackupsClient) ListByLocationSender(req *http.Request) (*http.Response, error) {
691	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
692}
693
694// ListByLocationResponder handles the response to the ListByLocation request. The method always
695// closes the http.Response Body.
696func (client LongTermRetentionManagedInstanceBackupsClient) ListByLocationResponder(resp *http.Response) (result ManagedInstanceLongTermRetentionBackupListResult, err error) {
697	err = autorest.Respond(
698		resp,
699		azure.WithErrorUnlessStatusCode(http.StatusOK),
700		autorest.ByUnmarshallingJSON(&result),
701		autorest.ByClosing())
702	result.Response = autorest.Response{Response: resp}
703	return
704}
705
706// listByLocationNextResults retrieves the next set of results, if any.
707func (client LongTermRetentionManagedInstanceBackupsClient) listByLocationNextResults(ctx context.Context, lastResults ManagedInstanceLongTermRetentionBackupListResult) (result ManagedInstanceLongTermRetentionBackupListResult, err error) {
708	req, err := lastResults.managedInstanceLongTermRetentionBackupListResultPreparer(ctx)
709	if err != nil {
710		return result, autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "listByLocationNextResults", nil, "Failure preparing next results request")
711	}
712	if req == nil {
713		return
714	}
715	resp, err := client.ListByLocationSender(req)
716	if err != nil {
717		result.Response = autorest.Response{Response: resp}
718		return result, autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "listByLocationNextResults", resp, "Failure sending next results request")
719	}
720	result, err = client.ListByLocationResponder(resp)
721	if err != nil {
722		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "listByLocationNextResults", resp, "Failure responding to next results request")
723	}
724	return
725}
726
727// ListByLocationComplete enumerates all values, automatically crossing page boundaries as required.
728func (client LongTermRetentionManagedInstanceBackupsClient) ListByLocationComplete(ctx context.Context, locationName string, onlyLatestPerDatabase *bool, databaseState DatabaseState) (result ManagedInstanceLongTermRetentionBackupListResultIterator, err error) {
729	if tracing.IsEnabled() {
730		ctx = tracing.StartSpan(ctx, fqdn+"/LongTermRetentionManagedInstanceBackupsClient.ListByLocation")
731		defer func() {
732			sc := -1
733			if result.Response().Response.Response != nil {
734				sc = result.page.Response().Response.Response.StatusCode
735			}
736			tracing.EndSpan(ctx, sc, err)
737		}()
738	}
739	result.page, err = client.ListByLocation(ctx, locationName, onlyLatestPerDatabase, databaseState)
740	return
741}
742
743// ListByResourceGroupDatabase lists all long term retention backups for a managed database.
744// Parameters:
745// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value
746// from the Azure Resource Manager API or the portal.
747// locationName - the location of the database
748// managedInstanceName - the name of the managed instance.
749// databaseName - the name of the managed database.
750// onlyLatestPerDatabase - whether or not to only get the latest backup for each database.
751// databaseState - whether to query against just live databases, just deleted databases, or all databases.
752func (client LongTermRetentionManagedInstanceBackupsClient) ListByResourceGroupDatabase(ctx context.Context, resourceGroupName string, locationName string, managedInstanceName string, databaseName string, onlyLatestPerDatabase *bool, databaseState DatabaseState) (result ManagedInstanceLongTermRetentionBackupListResultPage, err error) {
753	if tracing.IsEnabled() {
754		ctx = tracing.StartSpan(ctx, fqdn+"/LongTermRetentionManagedInstanceBackupsClient.ListByResourceGroupDatabase")
755		defer func() {
756			sc := -1
757			if result.miltrblr.Response.Response != nil {
758				sc = result.miltrblr.Response.Response.StatusCode
759			}
760			tracing.EndSpan(ctx, sc, err)
761		}()
762	}
763	result.fn = client.listByResourceGroupDatabaseNextResults
764	req, err := client.ListByResourceGroupDatabasePreparer(ctx, resourceGroupName, locationName, managedInstanceName, databaseName, onlyLatestPerDatabase, databaseState)
765	if err != nil {
766		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "ListByResourceGroupDatabase", nil, "Failure preparing request")
767		return
768	}
769
770	resp, err := client.ListByResourceGroupDatabaseSender(req)
771	if err != nil {
772		result.miltrblr.Response = autorest.Response{Response: resp}
773		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "ListByResourceGroupDatabase", resp, "Failure sending request")
774		return
775	}
776
777	result.miltrblr, err = client.ListByResourceGroupDatabaseResponder(resp)
778	if err != nil {
779		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "ListByResourceGroupDatabase", resp, "Failure responding to request")
780		return
781	}
782	if result.miltrblr.hasNextLink() && result.miltrblr.IsEmpty() {
783		err = result.NextWithContext(ctx)
784		return
785	}
786
787	return
788}
789
790// ListByResourceGroupDatabasePreparer prepares the ListByResourceGroupDatabase request.
791func (client LongTermRetentionManagedInstanceBackupsClient) ListByResourceGroupDatabasePreparer(ctx context.Context, resourceGroupName string, locationName string, managedInstanceName string, databaseName string, onlyLatestPerDatabase *bool, databaseState DatabaseState) (*http.Request, error) {
792	pathParameters := map[string]interface{}{
793		"databaseName":        autorest.Encode("path", databaseName),
794		"locationName":        autorest.Encode("path", locationName),
795		"managedInstanceName": autorest.Encode("path", managedInstanceName),
796		"resourceGroupName":   autorest.Encode("path", resourceGroupName),
797		"subscriptionId":      autorest.Encode("path", client.SubscriptionID),
798	}
799
800	const APIVersion = "2018-06-01-preview"
801	queryParameters := map[string]interface{}{
802		"api-version": APIVersion,
803	}
804	if onlyLatestPerDatabase != nil {
805		queryParameters["onlyLatestPerDatabase"] = autorest.Encode("query", *onlyLatestPerDatabase)
806	}
807	if len(string(databaseState)) > 0 {
808		queryParameters["databaseState"] = autorest.Encode("query", databaseState)
809	}
810
811	preparer := autorest.CreatePreparer(
812		autorest.AsGet(),
813		autorest.WithBaseURL(client.BaseURI),
814		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/locations/{locationName}/longTermRetentionManagedInstances/{managedInstanceName}/longTermRetentionDatabases/{databaseName}/longTermRetentionManagedInstanceBackups", pathParameters),
815		autorest.WithQueryParameters(queryParameters))
816	return preparer.Prepare((&http.Request{}).WithContext(ctx))
817}
818
819// ListByResourceGroupDatabaseSender sends the ListByResourceGroupDatabase request. The method will close the
820// http.Response Body if it receives an error.
821func (client LongTermRetentionManagedInstanceBackupsClient) ListByResourceGroupDatabaseSender(req *http.Request) (*http.Response, error) {
822	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
823}
824
825// ListByResourceGroupDatabaseResponder handles the response to the ListByResourceGroupDatabase request. The method always
826// closes the http.Response Body.
827func (client LongTermRetentionManagedInstanceBackupsClient) ListByResourceGroupDatabaseResponder(resp *http.Response) (result ManagedInstanceLongTermRetentionBackupListResult, err error) {
828	err = autorest.Respond(
829		resp,
830		azure.WithErrorUnlessStatusCode(http.StatusOK),
831		autorest.ByUnmarshallingJSON(&result),
832		autorest.ByClosing())
833	result.Response = autorest.Response{Response: resp}
834	return
835}
836
837// listByResourceGroupDatabaseNextResults retrieves the next set of results, if any.
838func (client LongTermRetentionManagedInstanceBackupsClient) listByResourceGroupDatabaseNextResults(ctx context.Context, lastResults ManagedInstanceLongTermRetentionBackupListResult) (result ManagedInstanceLongTermRetentionBackupListResult, err error) {
839	req, err := lastResults.managedInstanceLongTermRetentionBackupListResultPreparer(ctx)
840	if err != nil {
841		return result, autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "listByResourceGroupDatabaseNextResults", nil, "Failure preparing next results request")
842	}
843	if req == nil {
844		return
845	}
846	resp, err := client.ListByResourceGroupDatabaseSender(req)
847	if err != nil {
848		result.Response = autorest.Response{Response: resp}
849		return result, autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "listByResourceGroupDatabaseNextResults", resp, "Failure sending next results request")
850	}
851	result, err = client.ListByResourceGroupDatabaseResponder(resp)
852	if err != nil {
853		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "listByResourceGroupDatabaseNextResults", resp, "Failure responding to next results request")
854	}
855	return
856}
857
858// ListByResourceGroupDatabaseComplete enumerates all values, automatically crossing page boundaries as required.
859func (client LongTermRetentionManagedInstanceBackupsClient) ListByResourceGroupDatabaseComplete(ctx context.Context, resourceGroupName string, locationName string, managedInstanceName string, databaseName string, onlyLatestPerDatabase *bool, databaseState DatabaseState) (result ManagedInstanceLongTermRetentionBackupListResultIterator, err error) {
860	if tracing.IsEnabled() {
861		ctx = tracing.StartSpan(ctx, fqdn+"/LongTermRetentionManagedInstanceBackupsClient.ListByResourceGroupDatabase")
862		defer func() {
863			sc := -1
864			if result.Response().Response.Response != nil {
865				sc = result.page.Response().Response.Response.StatusCode
866			}
867			tracing.EndSpan(ctx, sc, err)
868		}()
869	}
870	result.page, err = client.ListByResourceGroupDatabase(ctx, resourceGroupName, locationName, managedInstanceName, databaseName, onlyLatestPerDatabase, databaseState)
871	return
872}
873
874// ListByResourceGroupInstance lists the long term retention backups for a given managed instance.
875// Parameters:
876// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value
877// from the Azure Resource Manager API or the portal.
878// locationName - the location of the database.
879// managedInstanceName - the name of the managed instance.
880// onlyLatestPerDatabase - whether or not to only get the latest backup for each database.
881// databaseState - whether to query against just live databases, just deleted databases, or all databases.
882func (client LongTermRetentionManagedInstanceBackupsClient) ListByResourceGroupInstance(ctx context.Context, resourceGroupName string, locationName string, managedInstanceName string, onlyLatestPerDatabase *bool, databaseState DatabaseState) (result ManagedInstanceLongTermRetentionBackupListResultPage, err error) {
883	if tracing.IsEnabled() {
884		ctx = tracing.StartSpan(ctx, fqdn+"/LongTermRetentionManagedInstanceBackupsClient.ListByResourceGroupInstance")
885		defer func() {
886			sc := -1
887			if result.miltrblr.Response.Response != nil {
888				sc = result.miltrblr.Response.Response.StatusCode
889			}
890			tracing.EndSpan(ctx, sc, err)
891		}()
892	}
893	result.fn = client.listByResourceGroupInstanceNextResults
894	req, err := client.ListByResourceGroupInstancePreparer(ctx, resourceGroupName, locationName, managedInstanceName, onlyLatestPerDatabase, databaseState)
895	if err != nil {
896		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "ListByResourceGroupInstance", nil, "Failure preparing request")
897		return
898	}
899
900	resp, err := client.ListByResourceGroupInstanceSender(req)
901	if err != nil {
902		result.miltrblr.Response = autorest.Response{Response: resp}
903		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "ListByResourceGroupInstance", resp, "Failure sending request")
904		return
905	}
906
907	result.miltrblr, err = client.ListByResourceGroupInstanceResponder(resp)
908	if err != nil {
909		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "ListByResourceGroupInstance", resp, "Failure responding to request")
910		return
911	}
912	if result.miltrblr.hasNextLink() && result.miltrblr.IsEmpty() {
913		err = result.NextWithContext(ctx)
914		return
915	}
916
917	return
918}
919
920// ListByResourceGroupInstancePreparer prepares the ListByResourceGroupInstance request.
921func (client LongTermRetentionManagedInstanceBackupsClient) ListByResourceGroupInstancePreparer(ctx context.Context, resourceGroupName string, locationName string, managedInstanceName string, onlyLatestPerDatabase *bool, databaseState DatabaseState) (*http.Request, error) {
922	pathParameters := map[string]interface{}{
923		"locationName":        autorest.Encode("path", locationName),
924		"managedInstanceName": autorest.Encode("path", managedInstanceName),
925		"resourceGroupName":   autorest.Encode("path", resourceGroupName),
926		"subscriptionId":      autorest.Encode("path", client.SubscriptionID),
927	}
928
929	const APIVersion = "2018-06-01-preview"
930	queryParameters := map[string]interface{}{
931		"api-version": APIVersion,
932	}
933	if onlyLatestPerDatabase != nil {
934		queryParameters["onlyLatestPerDatabase"] = autorest.Encode("query", *onlyLatestPerDatabase)
935	}
936	if len(string(databaseState)) > 0 {
937		queryParameters["databaseState"] = autorest.Encode("query", databaseState)
938	}
939
940	preparer := autorest.CreatePreparer(
941		autorest.AsGet(),
942		autorest.WithBaseURL(client.BaseURI),
943		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/locations/{locationName}/longTermRetentionManagedInstances/{managedInstanceName}/longTermRetentionManagedInstanceBackups", pathParameters),
944		autorest.WithQueryParameters(queryParameters))
945	return preparer.Prepare((&http.Request{}).WithContext(ctx))
946}
947
948// ListByResourceGroupInstanceSender sends the ListByResourceGroupInstance request. The method will close the
949// http.Response Body if it receives an error.
950func (client LongTermRetentionManagedInstanceBackupsClient) ListByResourceGroupInstanceSender(req *http.Request) (*http.Response, error) {
951	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
952}
953
954// ListByResourceGroupInstanceResponder handles the response to the ListByResourceGroupInstance request. The method always
955// closes the http.Response Body.
956func (client LongTermRetentionManagedInstanceBackupsClient) ListByResourceGroupInstanceResponder(resp *http.Response) (result ManagedInstanceLongTermRetentionBackupListResult, err error) {
957	err = autorest.Respond(
958		resp,
959		azure.WithErrorUnlessStatusCode(http.StatusOK),
960		autorest.ByUnmarshallingJSON(&result),
961		autorest.ByClosing())
962	result.Response = autorest.Response{Response: resp}
963	return
964}
965
966// listByResourceGroupInstanceNextResults retrieves the next set of results, if any.
967func (client LongTermRetentionManagedInstanceBackupsClient) listByResourceGroupInstanceNextResults(ctx context.Context, lastResults ManagedInstanceLongTermRetentionBackupListResult) (result ManagedInstanceLongTermRetentionBackupListResult, err error) {
968	req, err := lastResults.managedInstanceLongTermRetentionBackupListResultPreparer(ctx)
969	if err != nil {
970		return result, autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "listByResourceGroupInstanceNextResults", nil, "Failure preparing next results request")
971	}
972	if req == nil {
973		return
974	}
975	resp, err := client.ListByResourceGroupInstanceSender(req)
976	if err != nil {
977		result.Response = autorest.Response{Response: resp}
978		return result, autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "listByResourceGroupInstanceNextResults", resp, "Failure sending next results request")
979	}
980	result, err = client.ListByResourceGroupInstanceResponder(resp)
981	if err != nil {
982		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "listByResourceGroupInstanceNextResults", resp, "Failure responding to next results request")
983	}
984	return
985}
986
987// ListByResourceGroupInstanceComplete enumerates all values, automatically crossing page boundaries as required.
988func (client LongTermRetentionManagedInstanceBackupsClient) ListByResourceGroupInstanceComplete(ctx context.Context, resourceGroupName string, locationName string, managedInstanceName string, onlyLatestPerDatabase *bool, databaseState DatabaseState) (result ManagedInstanceLongTermRetentionBackupListResultIterator, err error) {
989	if tracing.IsEnabled() {
990		ctx = tracing.StartSpan(ctx, fqdn+"/LongTermRetentionManagedInstanceBackupsClient.ListByResourceGroupInstance")
991		defer func() {
992			sc := -1
993			if result.Response().Response.Response != nil {
994				sc = result.page.Response().Response.Response.StatusCode
995			}
996			tracing.EndSpan(ctx, sc, err)
997		}()
998	}
999	result.page, err = client.ListByResourceGroupInstance(ctx, resourceGroupName, locationName, managedInstanceName, onlyLatestPerDatabase, databaseState)
1000	return
1001}
1002
1003// ListByResourceGroupLocation lists the long term retention backups for managed databases in a given location.
1004// Parameters:
1005// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value
1006// from the Azure Resource Manager API or the portal.
1007// locationName - the location of the database.
1008// onlyLatestPerDatabase - whether or not to only get the latest backup for each database.
1009// databaseState - whether to query against just live databases, just deleted databases, or all databases.
1010func (client LongTermRetentionManagedInstanceBackupsClient) ListByResourceGroupLocation(ctx context.Context, resourceGroupName string, locationName string, onlyLatestPerDatabase *bool, databaseState DatabaseState) (result ManagedInstanceLongTermRetentionBackupListResultPage, err error) {
1011	if tracing.IsEnabled() {
1012		ctx = tracing.StartSpan(ctx, fqdn+"/LongTermRetentionManagedInstanceBackupsClient.ListByResourceGroupLocation")
1013		defer func() {
1014			sc := -1
1015			if result.miltrblr.Response.Response != nil {
1016				sc = result.miltrblr.Response.Response.StatusCode
1017			}
1018			tracing.EndSpan(ctx, sc, err)
1019		}()
1020	}
1021	result.fn = client.listByResourceGroupLocationNextResults
1022	req, err := client.ListByResourceGroupLocationPreparer(ctx, resourceGroupName, locationName, onlyLatestPerDatabase, databaseState)
1023	if err != nil {
1024		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "ListByResourceGroupLocation", nil, "Failure preparing request")
1025		return
1026	}
1027
1028	resp, err := client.ListByResourceGroupLocationSender(req)
1029	if err != nil {
1030		result.miltrblr.Response = autorest.Response{Response: resp}
1031		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "ListByResourceGroupLocation", resp, "Failure sending request")
1032		return
1033	}
1034
1035	result.miltrblr, err = client.ListByResourceGroupLocationResponder(resp)
1036	if err != nil {
1037		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "ListByResourceGroupLocation", resp, "Failure responding to request")
1038		return
1039	}
1040	if result.miltrblr.hasNextLink() && result.miltrblr.IsEmpty() {
1041		err = result.NextWithContext(ctx)
1042		return
1043	}
1044
1045	return
1046}
1047
1048// ListByResourceGroupLocationPreparer prepares the ListByResourceGroupLocation request.
1049func (client LongTermRetentionManagedInstanceBackupsClient) ListByResourceGroupLocationPreparer(ctx context.Context, resourceGroupName string, locationName string, onlyLatestPerDatabase *bool, databaseState DatabaseState) (*http.Request, error) {
1050	pathParameters := map[string]interface{}{
1051		"locationName":      autorest.Encode("path", locationName),
1052		"resourceGroupName": autorest.Encode("path", resourceGroupName),
1053		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
1054	}
1055
1056	const APIVersion = "2018-06-01-preview"
1057	queryParameters := map[string]interface{}{
1058		"api-version": APIVersion,
1059	}
1060	if onlyLatestPerDatabase != nil {
1061		queryParameters["onlyLatestPerDatabase"] = autorest.Encode("query", *onlyLatestPerDatabase)
1062	}
1063	if len(string(databaseState)) > 0 {
1064		queryParameters["databaseState"] = autorest.Encode("query", databaseState)
1065	}
1066
1067	preparer := autorest.CreatePreparer(
1068		autorest.AsGet(),
1069		autorest.WithBaseURL(client.BaseURI),
1070		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/locations/{locationName}/longTermRetentionManagedInstanceBackups", pathParameters),
1071		autorest.WithQueryParameters(queryParameters))
1072	return preparer.Prepare((&http.Request{}).WithContext(ctx))
1073}
1074
1075// ListByResourceGroupLocationSender sends the ListByResourceGroupLocation request. The method will close the
1076// http.Response Body if it receives an error.
1077func (client LongTermRetentionManagedInstanceBackupsClient) ListByResourceGroupLocationSender(req *http.Request) (*http.Response, error) {
1078	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
1079}
1080
1081// ListByResourceGroupLocationResponder handles the response to the ListByResourceGroupLocation request. The method always
1082// closes the http.Response Body.
1083func (client LongTermRetentionManagedInstanceBackupsClient) ListByResourceGroupLocationResponder(resp *http.Response) (result ManagedInstanceLongTermRetentionBackupListResult, err error) {
1084	err = autorest.Respond(
1085		resp,
1086		azure.WithErrorUnlessStatusCode(http.StatusOK),
1087		autorest.ByUnmarshallingJSON(&result),
1088		autorest.ByClosing())
1089	result.Response = autorest.Response{Response: resp}
1090	return
1091}
1092
1093// listByResourceGroupLocationNextResults retrieves the next set of results, if any.
1094func (client LongTermRetentionManagedInstanceBackupsClient) listByResourceGroupLocationNextResults(ctx context.Context, lastResults ManagedInstanceLongTermRetentionBackupListResult) (result ManagedInstanceLongTermRetentionBackupListResult, err error) {
1095	req, err := lastResults.managedInstanceLongTermRetentionBackupListResultPreparer(ctx)
1096	if err != nil {
1097		return result, autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "listByResourceGroupLocationNextResults", nil, "Failure preparing next results request")
1098	}
1099	if req == nil {
1100		return
1101	}
1102	resp, err := client.ListByResourceGroupLocationSender(req)
1103	if err != nil {
1104		result.Response = autorest.Response{Response: resp}
1105		return result, autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "listByResourceGroupLocationNextResults", resp, "Failure sending next results request")
1106	}
1107	result, err = client.ListByResourceGroupLocationResponder(resp)
1108	if err != nil {
1109		err = autorest.NewErrorWithError(err, "sql.LongTermRetentionManagedInstanceBackupsClient", "listByResourceGroupLocationNextResults", resp, "Failure responding to next results request")
1110	}
1111	return
1112}
1113
1114// ListByResourceGroupLocationComplete enumerates all values, automatically crossing page boundaries as required.
1115func (client LongTermRetentionManagedInstanceBackupsClient) ListByResourceGroupLocationComplete(ctx context.Context, resourceGroupName string, locationName string, onlyLatestPerDatabase *bool, databaseState DatabaseState) (result ManagedInstanceLongTermRetentionBackupListResultIterator, err error) {
1116	if tracing.IsEnabled() {
1117		ctx = tracing.StartSpan(ctx, fqdn+"/LongTermRetentionManagedInstanceBackupsClient.ListByResourceGroupLocation")
1118		defer func() {
1119			sc := -1
1120			if result.Response().Response.Response != nil {
1121				sc = result.page.Response().Response.Response.StatusCode
1122			}
1123			tracing.EndSpan(ctx, sc, err)
1124		}()
1125	}
1126	result.page, err = client.ListByResourceGroupLocation(ctx, resourceGroupName, locationName, onlyLatestPerDatabase, databaseState)
1127	return
1128}
1129