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// RecoverableManagedDatabasesClient is the the Azure SQL Database management API provides a RESTful set of web 18// 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 RecoverableManagedDatabasesClient struct { 21 BaseClient 22} 23 24// NewRecoverableManagedDatabasesClient creates an instance of the RecoverableManagedDatabasesClient client. 25func NewRecoverableManagedDatabasesClient(subscriptionID string) RecoverableManagedDatabasesClient { 26 return NewRecoverableManagedDatabasesClientWithBaseURI(DefaultBaseURI, subscriptionID) 27} 28 29// NewRecoverableManagedDatabasesClientWithBaseURI creates an instance of the RecoverableManagedDatabasesClient client 30// using a custom endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign 31// clouds, Azure stack). 32func NewRecoverableManagedDatabasesClientWithBaseURI(baseURI string, subscriptionID string) RecoverableManagedDatabasesClient { 33 return RecoverableManagedDatabasesClient{NewWithBaseURI(baseURI, subscriptionID)} 34} 35 36// Get gets a recoverable managed database. 37// Parameters: 38// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 39// from the Azure Resource Manager API or the portal. 40// managedInstanceName - the name of the managed instance. 41func (client RecoverableManagedDatabasesClient) Get(ctx context.Context, resourceGroupName string, managedInstanceName string, recoverableDatabaseName string) (result RecoverableManagedDatabase, err error) { 42 if tracing.IsEnabled() { 43 ctx = tracing.StartSpan(ctx, fqdn+"/RecoverableManagedDatabasesClient.Get") 44 defer func() { 45 sc := -1 46 if result.Response.Response != nil { 47 sc = result.Response.Response.StatusCode 48 } 49 tracing.EndSpan(ctx, sc, err) 50 }() 51 } 52 req, err := client.GetPreparer(ctx, resourceGroupName, managedInstanceName, recoverableDatabaseName) 53 if err != nil { 54 err = autorest.NewErrorWithError(err, "sql.RecoverableManagedDatabasesClient", "Get", nil, "Failure preparing request") 55 return 56 } 57 58 resp, err := client.GetSender(req) 59 if err != nil { 60 result.Response = autorest.Response{Response: resp} 61 err = autorest.NewErrorWithError(err, "sql.RecoverableManagedDatabasesClient", "Get", resp, "Failure sending request") 62 return 63 } 64 65 result, err = client.GetResponder(resp) 66 if err != nil { 67 err = autorest.NewErrorWithError(err, "sql.RecoverableManagedDatabasesClient", "Get", resp, "Failure responding to request") 68 return 69 } 70 71 return 72} 73 74// GetPreparer prepares the Get request. 75func (client RecoverableManagedDatabasesClient) GetPreparer(ctx context.Context, resourceGroupName string, managedInstanceName string, recoverableDatabaseName string) (*http.Request, error) { 76 pathParameters := map[string]interface{}{ 77 "managedInstanceName": autorest.Encode("path", managedInstanceName), 78 "recoverableDatabaseName": autorest.Encode("path", recoverableDatabaseName), 79 "resourceGroupName": autorest.Encode("path", resourceGroupName), 80 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 81 } 82 83 const APIVersion = "2017-10-01-preview" 84 queryParameters := map[string]interface{}{ 85 "api-version": APIVersion, 86 } 87 88 preparer := autorest.CreatePreparer( 89 autorest.AsGet(), 90 autorest.WithBaseURL(client.BaseURI), 91 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances/{managedInstanceName}/recoverableDatabases/{recoverableDatabaseName}", pathParameters), 92 autorest.WithQueryParameters(queryParameters)) 93 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 94} 95 96// GetSender sends the Get request. The method will close the 97// http.Response Body if it receives an error. 98func (client RecoverableManagedDatabasesClient) GetSender(req *http.Request) (*http.Response, error) { 99 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 100} 101 102// GetResponder handles the response to the Get request. The method always 103// closes the http.Response Body. 104func (client RecoverableManagedDatabasesClient) GetResponder(resp *http.Response) (result RecoverableManagedDatabase, err error) { 105 err = autorest.Respond( 106 resp, 107 azure.WithErrorUnlessStatusCode(http.StatusOK), 108 autorest.ByUnmarshallingJSON(&result), 109 autorest.ByClosing()) 110 result.Response = autorest.Response{Response: resp} 111 return 112} 113 114// ListByInstance gets a list of recoverable managed databases. 115// Parameters: 116// resourceGroupName - the name of the resource group that contains the resource. You can obtain this value 117// from the Azure Resource Manager API or the portal. 118// managedInstanceName - the name of the managed instance. 119func (client RecoverableManagedDatabasesClient) ListByInstance(ctx context.Context, resourceGroupName string, managedInstanceName string) (result RecoverableManagedDatabaseListResultPage, err error) { 120 if tracing.IsEnabled() { 121 ctx = tracing.StartSpan(ctx, fqdn+"/RecoverableManagedDatabasesClient.ListByInstance") 122 defer func() { 123 sc := -1 124 if result.rmdlr.Response.Response != nil { 125 sc = result.rmdlr.Response.Response.StatusCode 126 } 127 tracing.EndSpan(ctx, sc, err) 128 }() 129 } 130 result.fn = client.listByInstanceNextResults 131 req, err := client.ListByInstancePreparer(ctx, resourceGroupName, managedInstanceName) 132 if err != nil { 133 err = autorest.NewErrorWithError(err, "sql.RecoverableManagedDatabasesClient", "ListByInstance", nil, "Failure preparing request") 134 return 135 } 136 137 resp, err := client.ListByInstanceSender(req) 138 if err != nil { 139 result.rmdlr.Response = autorest.Response{Response: resp} 140 err = autorest.NewErrorWithError(err, "sql.RecoverableManagedDatabasesClient", "ListByInstance", resp, "Failure sending request") 141 return 142 } 143 144 result.rmdlr, err = client.ListByInstanceResponder(resp) 145 if err != nil { 146 err = autorest.NewErrorWithError(err, "sql.RecoverableManagedDatabasesClient", "ListByInstance", resp, "Failure responding to request") 147 return 148 } 149 if result.rmdlr.hasNextLink() && result.rmdlr.IsEmpty() { 150 err = result.NextWithContext(ctx) 151 return 152 } 153 154 return 155} 156 157// ListByInstancePreparer prepares the ListByInstance request. 158func (client RecoverableManagedDatabasesClient) ListByInstancePreparer(ctx context.Context, resourceGroupName string, managedInstanceName string) (*http.Request, error) { 159 pathParameters := map[string]interface{}{ 160 "managedInstanceName": autorest.Encode("path", managedInstanceName), 161 "resourceGroupName": autorest.Encode("path", resourceGroupName), 162 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 163 } 164 165 const APIVersion = "2017-10-01-preview" 166 queryParameters := map[string]interface{}{ 167 "api-version": APIVersion, 168 } 169 170 preparer := autorest.CreatePreparer( 171 autorest.AsGet(), 172 autorest.WithBaseURL(client.BaseURI), 173 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances/{managedInstanceName}/recoverableDatabases", pathParameters), 174 autorest.WithQueryParameters(queryParameters)) 175 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 176} 177 178// ListByInstanceSender sends the ListByInstance request. The method will close the 179// http.Response Body if it receives an error. 180func (client RecoverableManagedDatabasesClient) ListByInstanceSender(req *http.Request) (*http.Response, error) { 181 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 182} 183 184// ListByInstanceResponder handles the response to the ListByInstance request. The method always 185// closes the http.Response Body. 186func (client RecoverableManagedDatabasesClient) ListByInstanceResponder(resp *http.Response) (result RecoverableManagedDatabaseListResult, err error) { 187 err = autorest.Respond( 188 resp, 189 azure.WithErrorUnlessStatusCode(http.StatusOK), 190 autorest.ByUnmarshallingJSON(&result), 191 autorest.ByClosing()) 192 result.Response = autorest.Response{Response: resp} 193 return 194} 195 196// listByInstanceNextResults retrieves the next set of results, if any. 197func (client RecoverableManagedDatabasesClient) listByInstanceNextResults(ctx context.Context, lastResults RecoverableManagedDatabaseListResult) (result RecoverableManagedDatabaseListResult, err error) { 198 req, err := lastResults.recoverableManagedDatabaseListResultPreparer(ctx) 199 if err != nil { 200 return result, autorest.NewErrorWithError(err, "sql.RecoverableManagedDatabasesClient", "listByInstanceNextResults", nil, "Failure preparing next results request") 201 } 202 if req == nil { 203 return 204 } 205 resp, err := client.ListByInstanceSender(req) 206 if err != nil { 207 result.Response = autorest.Response{Response: resp} 208 return result, autorest.NewErrorWithError(err, "sql.RecoverableManagedDatabasesClient", "listByInstanceNextResults", resp, "Failure sending next results request") 209 } 210 result, err = client.ListByInstanceResponder(resp) 211 if err != nil { 212 err = autorest.NewErrorWithError(err, "sql.RecoverableManagedDatabasesClient", "listByInstanceNextResults", resp, "Failure responding to next results request") 213 } 214 return 215} 216 217// ListByInstanceComplete enumerates all values, automatically crossing page boundaries as required. 218func (client RecoverableManagedDatabasesClient) ListByInstanceComplete(ctx context.Context, resourceGroupName string, managedInstanceName string) (result RecoverableManagedDatabaseListResultIterator, err error) { 219 if tracing.IsEnabled() { 220 ctx = tracing.StartSpan(ctx, fqdn+"/RecoverableManagedDatabasesClient.ListByInstance") 221 defer func() { 222 sc := -1 223 if result.Response().Response.Response != nil { 224 sc = result.page.Response().Response.Response.StatusCode 225 } 226 tracing.EndSpan(ctx, sc, err) 227 }() 228 } 229 result.page, err = client.ListByInstance(ctx, resourceGroupName, managedInstanceName) 230 return 231} 232